[英]Can't re-instantiate/respawn object I've destroyed in Unity3D
我有2個腳本。 1個制造物體,另一個摧毀它們。
我首先按OnSave
按鈕,該按鈕運行腳本#1並創建我的對象。 (有多個,盡管腳本中的此處僅顯示了一個,但為方便起見,我將其縮短了)
然后我按OnReset
按鈕,這會破壞創建的對象/預制件。 但是當我再次按OnSave
時,它不會重新創建對象。
這2個腳本已附加到2個不同的gameObjects
這是我所擁有的:
腳本1:
public GameObject go;
public static volatile List<GameObject> prefab = new List<GameObject>();
public class OnSave : MonoBehaviour
{
public void Start2()
{
var newObj = Instantiate(go);
newObj.transform.parent = GameObject.Find("MOOSE").transform;
newObj.GetComponent<Renderer>().material.color = Color.green;
newObj.transform.localPosition = new Vector3(1.0,1.0,1.0)
prefab.Add(newObj);
}
}
腳本2
public class OnReset: MonoBehaviour
{
foreach (GameObject obj in prefab)
{
Destroy(obj);
}
}
我正在使用最新版本的Unity。 我必須銷毀這些物體並重新創建它們
您需要一個預制板才能重新實例化該對象,但是銷毀和重新實例化的操作很繁瑣,因此通常您使用類似於https://www.assetstore.unity3d.com/en/#!/content的池管理器/ 47242 (免責聲明:我是這一本書的作者)或https://www.assetstore.unity3d.com/en/#!/content/23931 。
這是有關對象池的Unity官方教程: https ://unity3d.com/learn/tutorials/topics/scripting/object-pooling
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.