FC2ブログ
    02 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 04

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】Unityで円の中のランダムな座標をとってくれる関数?変数?があるってよ? 

    こんにちは。坂内っす。
    寒い日が続きますね!
    風邪に気を付けて暖かくしていきましょう!

    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:


    オブジェクトを中心点から一定の半径内に生成するということをしたい!

    って時は、Random.insideUnitCircleを使うといいらしいですよ。



    こんな感じで、真ん中に■を置いて、その半径●の中にImageを置くようにしてみます。
    また、スペースキーを押すと、真ん中の■を中心にImageを再生成します。
    半径がわかりやすいようにGizmosも出しています。

    [Blog0129.cs]

    using UnityEngine;

    public class Blog0129 : MonoBehaviour
    {
    [SerializeField] private Transform trnCenterPosi;
    [SerializeField] private GameObject objImage;
    [SerializeField] private float radius;
    [SerializeField] private Transform randomPlace;
    int objCount = 10;
    Vector2 centerPosi;

    void Start()
    {
    MakeRandomObject();
    }

    private void Update() {
    if (Input.GetKeyDown(KeyCode.Space)) {
    MakeRandomObject();
    }
    }

    void MakeRandomObject() {
    foreach (Transform trn in randomPlace) {
    Destroy(trn.gameObject);
    }

    centerPosi = trnCenterPosi.position;
    for (int i = 0; i < objCount; i++) {
    var pos = radius * Random.insideUnitCircle;
    Vector2 spawnPosi = new Vector2(pos.x, pos.y) + centerPosi;
    Instantiate(objImage, randomPlace, false).transform.position = spawnPosi;
    }
    }

    private void OnDrawGizmos() {
    Gizmos.color = Color.red;
    Gizmos.DrawWireSphere(centerPosi, radius);
    }
    }





    Random.insideUnitCircle;
    これを指定してあげると、中心点から半径●の間でランダムに座標を求めることができます。

    使う機会ないかもしれませんが、便利なstaticな変数ですよね。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/1042-dc0ce3c2
    この記事にトラックバックする(FC2ブログユーザー)