Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9723

円状にオブジェクトを生成する

$
0
0

説明

Unityで円状にオブジェクトを生成します。

前回のサインカーブにオブジェクト生成するものからの発展です。

ちょっとリファクタリングしてますが、yの生成方法は前回と同じです。
さらに、xを同様にCosで求めるだけで、円形になります。

それぞれの周期が半分ずつずれてるので、うまい具合に円になってくれるのですが、
xとyにそれぞれCosとSin与えておけば円になるって覚えとけばなんとかなります。

20180613233826.jpg

あと、距離は円ということで 半径radiusに置き換えました。
円形なので、繰り返しについては正直意味がないんですが、
次の発展絵使えるのでとりあえず残しています。

また、真ん中の球はコピー元のオブジェクトです。
邪魔な場合は、createObjectにPrefabを指定するか、
円を生成後、createObject自体を消滅させても良いでしょう。

20180613234044.jpg

サンプルコード

usingUnityEngine;publicclassCircleObjectCreater:MonoBehaviour{[SerializeField]privateGameObjectcreateObject;// 生成するオブジェクト[SerializeField]privateintitemCount=40;// 生成するオブジェクトの数[SerializeField]privatefloatradius=5f;// 半径[SerializeField]privatefloatrepeat=2f;// 何周期するかvoidStart(){varoneCycle=2.0f*Mathf.PI;// sin の周期は 2πfor(vari=0;i<itemCount;++i){varpoint=((float)i/itemCount)*oneCycle;// 周期の位置 (1.0 = 100% の時 2π となる)varrepeatPoint=point*repeat;// 繰り返し位置varx=Mathf.Cos(repeatPoint)*radius;vary=Mathf.Sin(repeatPoint)*radius;varposition=newVector3(x,y);Instantiate(createObject,position,Quaternion.identity,transform);}}}

GitHub

https://github.com/becky3/unity-test-Circle


Viewing all articles
Browse latest Browse all 9723

Trending Articles