删除预制件的克隆

问题描述 投票:0回答:1

我正在制作一个显示对象的“游戏”,您以后可以创建预制件的克隆或删除它们。到目前为止,我有这个脚本

public class globalControl : MonoBehaviour
{
    public GameObject prefabInstance;
    GameObject prefabInstanceClone;

    void Update()
    {
        if(Input.GetKeyDown("c"))
        {
            prefabInstanceClone = Instantiate(prefabInstance, transform.position, Quaternion.identity) as GameObject;

        }

        if (Input.GetKeyDown("d"))
        {
                Destroy(prefabInstanceClone);
        }
    }

}

为了克隆,我正在使用

if(Input.GetKeyDown("c"))
   {
     prefabInstanceClone = Instantiate(prefabInstance, transform.position, Quaternion.identity) as GameObject;

    }

和删除

 if (Input.GetKeyDown("d"))
    {
      Destroy(prefabInstanceClone);
    }

我克隆现有的预制件没有问题,但是当我尝试删除克隆时,我只能删除创建的最后一个克隆,我必须能够删除我拥有的所有克隆。

c# unity3d
1个回答
1
投票
public GameObject prefabInstance;
List<Object> prefabInstanceClones = new List<Object>();

void Update()
{
    if (Input.GetKeyDown("c"))
    {
        prefabInstanceClones.Add(Instantiate(prefabInstance, transform.position, Quaternion.identity));
    }

    if (Input.GetKeyDown("d"))
    {
        var last = prefabInstanceClones.LastOrDefault();
        prefabInstanceClones.Remove(last);
        Destroy(last);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.