スクリプトでゲームオブジェクトを作成する方法

2020年2月5日

シーンビューでゲームオブジェクトを最初から配置するのではなく、スクリプトで、動的に配置する方法になります。Instantiate()メソッドでは、引数にPrefabまたは、インスタンス化されたオブジェクトが必要になりますが、この方法では、空のゲームオブジェクトを作成する手順となります。

サンプルシーン

スクリプトの実行のため、空のゲームオブジェクトを作成し、作成したテストスクリプトをアタッチします。

using System;
using UnityEngine;
 
public class Test : MonoBehaviour
{
    void Start()
    {
        // Type型配列に追加したいコンポーネントを代入
        Type[] components = { typeof(Rigidbody), typeof(BoxCollider) };
 
        // 名前と追加したいコンポーネントを引数としたゲームオブジェクトの作成(引数は、名前一つでも良い)
        var obj = new GameObject("Ghost", components);
 
        // コンポーネントのプロパティを変更してみる
        obj.GetComponent<Rigidbody>().isKinematic = true;
    }
}

実行

シーンに新しく引数で設定した名前のゲームオブジェクトが作成され、同じく引数で設定したコンポーネントがアタッチされていることを確認。また、プロパティの変更もなされていることも確認。

Unity

Posted by hidepon