Tag: javascript

unityでプリミティブprimitive形状を生成する

unityでプリミティブprimitive形状を生成するやり方。
単純に生成するだけなら以下のjavascriptでよし。
[javascript]
var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
[/javascript]
これでできたcubeに対してRigidbodyやらpositionやらを設定していきます。

プリミティブ形状を生成して色々設定してみる

[javascript]
var cubenum:float = 5;
var cubeposition:float = 0;

function Start () {

for (var i= 0; i < cubenum; i++){

var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.AddComponent(Rigidbody);

cube.transform.position = Vector3(cubeposition,10,0);
cube.transform.eulerAngles = Vector3(cubeposition,cubeposition*3,cubeposition*10);
cubeposition += 5;

}

//Ground
var groundcube = gameObject.CreatePrimitive(PrimitiveType.Cube);
groundcube.transform.position = Vector3(0,0,0);
groundcube.transform.localScale.x = 1000;
groundcube.transform.localScale.z = 1000;

}[/javascript]

上記ではfor文でプリミティブ形状を生成し、Rigidbodyと(物理演算ができるようになる)、positionとeulerAngles(角度?)を付けています。

もう一つは地面の形状として、cubeを生成して、大きさを1000倍にしています。Rigidbodyはつけていないけど、プリミティブの時点でcolliderはついているのでcubeが着地できます。

Random関数がよく分からなかった・・・。

unityをhtmlに埋め込むやり方

flashと同じく、unityをhtml(サイト)に埋め込むにはjavascriptを使う必要があります。もしかしたらhtmlのembedタグでできるかもしれませんが、枠ができたり一旦クリックしなくてはいけなかったりする可能性がありますし、結局たいしてコードが短いわけでもないのでjavascriptがよいかと思います。

javascriptをhead内に埋め込む

共通で使う以下のタグをjavascriptをheadタグ内に埋め込みます。
[javascript]

[/javascript]

単独の記事向けにjavascriptを埋め込む

サイト内にunityのオブジェクトが1つしかない場合はheadタグ内にもう一つjavascriptを埋め込むのですが、ブログなどの場合は記事内にjavascriptを埋め込みます。
[javascript]

[/javascript]

上記のスクリプトの各項目です。
[javascript]

[/javascript]

htmlの記述例

javascriptに続けて、htmlも埋め込みます。これはブラウザにunityのプラグインがインストールされていない場合には「インストールしてね」って表示される内容も含まれています。
[javascript]

[/javascript]

上記の例のidが「unityPlayer」となっていますが、ここは任意で決めます。javascriptの「ページでユニークなid要素名」と同じ名前にします。

上のアレは画面にプリミティブオブジェクトを生成してRigidbodyを付けて〜な感じですが、次の記事にて。

Unityでマウスドラッグしてオブジェクトを回転させる

unityでマウスドラッグしてゲームオブジェクトを回転されるjavascript。
他のやり方もたくさんあるかと思いますが、紹介するやり方はマウスの左クリックを押した瞬間と左クリックを押している状態のメソッドを組み合わせた簡単なものです。これだけでも時間かかりましたが・・・。
[javascript]
var rotatetarget:Transform;
var xspeed:float = 100;
var yspeed:float = 100;

private var sx:float;
private var sy:float;
private var dx:float;
private var dy:float;
private var tx:float;
private var ty:float;

function Update() {

//Start
if(Input.GetMouseButtonDown(0)) {
//Input Mouse position
sx = Input.mousePosition.x;
sy = Input.mousePosition.y;
}
//Drag
if(Input.GetMouseButton(0)) {
dx = Input.mousePosition.x;
dy = Input.mousePosition.y;

tx = sx – dx;
ty = sy – dy;

//Rotate!
rotatetarget.Rotate( ty / yspeed , tx / xspeed , 0);
}
}[/javascript]

Input.GetMouseButtonDown(0)が左クリックを押した瞬間、Input.GetMouseButton(0)が押している状態です。

  • unityで実際に使用する時は、「project」ウィンドウで「Create」→「javascript」でスクリプトを追加し、上記のスクリプトをペーストして保存します。
  • 次に上部メニューから「GameObject」→「Create Empty」で空のGameObjectを追加し、そのGameObjectに先ほど保存したjavascriptをドラッグして追加してやります。
  • 最後にjavascriptの項目に「RotateTarget」があり、(none)となっている部分に回転されたいオブジェクトをドラッグします。

マウスmouseのドラッグdragでオブジェクトを回転rotateさせる

【サンプル】Unityでマウスドラッグしてオブジェクトを回転させる

あと上の図の「Xsped」と「Yspeed」を変えてやることでドラッグのスピードが変えられます。数値が高い方がゆっくりになります。
できれば@marupuraさんがこのスクリプト使ってもらって、ムキムキのモデルをグリグリしたい!

© 2017 UXIC.net

Theme by Anders NorenUp ↑