例項化預製件

例項化預製件有兩種方法:在設計時執行時

設計時例項化

在設計時例項化預製件對於可視地放置同一物件的多個例項(例如,在設計遊戲關卡時放置樹 )非常有用。

  • 要在視覺上例項化預製件,請將其從專案檢視拖動到場景層次結構。

    StackOverflow 文件

  • 如果你正在編寫編輯器擴充套件 ,你還可以通過程式設計方式呼叫 PrefabUtility.InstantiatePrefab() 方法例項化預製件:

    GameObject gameObject = (GameObject)PrefabUtility.InstantiatePrefab(AssetDatabase.LoadAssetAtPath("Assets/MainCamera.prefab", typeof(GameObject)));
    

執行時例項化

在執行時例項化預製件對於根據某些邏輯建立物件的例項(例如*,每 5 秒產生一個敵人* ) 是有用的。

要例項化預製件,你需要引用預製件物件。這可以通過在 MonoBehaviour 指令碼中使用 public GameObject 欄位(並使用 Unity 編輯器中的檢查器設定其值)來完成:

public class SomeScript : MonoBehaviour {
   public GameObject prefab; 
}

或者將預製件放在 Resource 資料夾中並使用 Resources.Load

GameObject prefab = Resources.Load("Assets/Resources/MainCamera");

一旦你有了對 prefab 物件的引用,你就可以在你的程式碼中的任何地方使用 Instantiate 函式來例項化它(例如在迴圈內建立多個物件 ):

GameObject gameObject = Instantiate<GameObject>(prefab, new Vector3(0,0,0), Quaternion.identity);

注意: 預製術語在執行時不存在。