簡體   English   中英

無法重新實例化/重生我在Unity3D中銷毀的對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM