スクリプトで親子階層を設定する

YuTanaka edited this page Oct 28, 2016 · 1 revision

Kaiso.cs という以下のようなスクリプトを作成して、親のゲームオブジェクトに設定します。

using UnityEngine;
using System.Collections;

public class Kaisou : MonoBehaviour {
	/** 生成する子供のゲームオブジェクト*/
	public GameObject prefKo;

	// Update is called once per frame
	void Update () {
                // テストのため、ジャンプボタンが押されたら、親の2m上に発生させる
		if (Input.GetButtonDown("Jump"))  {
                        SetKo(new Vector3(0, 2f, 0);
		}
	}

        void SetKo(Vector3 pos) {
            GameObject go = Instantiate(prefKo) as GameObject;
            // 生成したゲームオブジェクトの親に、このゲームオブジェクトを設定
            go.transform.parent = transform;
            // 親に対して、どの位置にくっつけるかを設定
            go.transform.localPosition = pos;
        }
}
  
  • Unityに切り替えて、親のゲームオブジェクトを選択
  • [Inspector]ビューの[Pref Ko]という欄に、親にくっつけたいゲームオブジェクトのプレハブをドラッグ&ドロップ

以上ができたら、実行して、[Space]キーを押すと、親からみて上に2mの位置に、子のゲームオブジェクトが生成されます。親が移動すると、いっしょに子供も移動します。

実際に利用する場合は、SetKo関数を使いたい場所にコピー&ペーストして、子供を発生させたい場所を指定して呼び出してください。

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.