【Unity】インスタンス化する位置や回転をプレハブに保存する

投稿者: | 2021-07-16

猿のオブジェクトをプレハブ化し、そのプレハブに位置や回転を保存してインスタンス化するときに使ってみました。

オブジェクトの位置と回転を調整する

猿のプレハブをProjectウィンドウからシーンビューにドラッグアンドドロップして、そのインスタンスの位置と回転を調整します。

すると、トランスフォームの位置と回転の値がオーバーライドされて太字になりました。

プレハブに適用する

この値をプレハブに適用するには、プロパティを右クリックしてコンテキストメニューを開き、「Apply to prefab ‘…」を選択します。

すると、値が適用されて細字に戻りました。

これを位置と回転の両方で行いました。

これで、Projectウィンドウにあるプレハブアセットのトランスフォームもこの値になりました。

インスタンス化する

このプレハブをスクリプトにアタッチしてインスタンス化します。

インスタンス化に、引数がオブジェクトだけのInstantiateメソッドを使うと、そのオブジェクトのトランスフォームの値が使われます。

using UnityEngine;

public class InstanciateTest3 : MonoBehaviour
{
    // プレハブ
    [SerializeField] GameObject prefab;

    // Start is called before the first frame update
    void Start()
    {
        // インスタンス化する
        Instantiate(prefab);
    }

}

これで、プレハブに設定した位置と回転がインスタンスに適用されました。

コメントを残す

メールアドレスが公開されることはありません。