【Unity】子オブジェクトとしてインスタンスを作成

Unityで子オブジェクトとしてインスタンスをスクリプトで作成するには、以下の手順を実行します。

  1. Instantiate() メソッドを使用して、新しいオブジェクトを作成します。これは、親オブジェクトの子オブジェクトとして作成されます。
  2. 新しいオブジェクトを、親オブジェクトの transform の子として設定します。これにより、新しいオブジェクトが親オブジェクトの位置、回転、およびスケールを継承します。

以下は、上記手順を反映したサンプルコードです。

public class ExampleScript : MonoBehaviour
{
    public GameObject prefab; // インスタンス化するプレハブを指定する

    void Start()
    {
        // prefab を子オブジェクトとしてインスタンス化する
        GameObject childObject = Instantiate(prefab, transform);
        
        // childObject の位置、回転、スケールを設定する
        childObject.transform.localPosition = new Vector3(0, 0, 0);
        childObject.transform.localRotation = Quaternion.identity;
        childObject.transform.localScale = new Vector3(1, 1, 1);
    }
}

上記コードでは、prefab 変数にインスタンス化するプレハブを設定しています。Start() メソッド内で、prefab を子オブジェクトとしてインスタンス化し、新しいオブジェクトの位置、回転、スケールを設定しています。注意点として、transform.localPosition、transform.localRotation、transform.localScale を使用していることに注目してください。これらは、親オブジェクトの座標系に対して相対的な位置、回転、スケールを表します。

Unity,学習

Posted by hidepon