我有2个不同的脚本附加到2个不同的游戏对象。
一个实例化一堆游戏主题,我希望第二个消灭它们。
code1:
public static volatile GameObject newObj;
public GameObject go;
newObj = GameObject.Instantiate(go);
newObj.tag = "mytag";
Code 2:
GameObject[] all_cloned_prefabs = GameObject.FindGameObjectsWithTag("mytag");
foreach (var AllPrefabs in all_cloned_prefabs)
{
Destroy(AllPrefabs);
}
当我运行代码2时(让我们说按GUI上的按钮,它不会破坏我在屏幕上创建的对象。我做错了什么?
答案 0 :(得分:2)
很难理解你在public static volatile GameObject newObj;
的第一个代码中尝试做什么,它没有在你所显示的代码的其他部分中使用。
第二个代码看起来不错,可能出错的是:
FindGameObjectsWithTag
不会返回非活动的GameObjects。)尝试Debug.Log all_cloned_prefabs
数组的内容,看看它是否真的包含任何内容。
答案 1 :(得分:0)
我将所有对象放在列表中,成为列表public static volatile prefab1
。从第二个脚本访问它。然后摧毁了他们
它工作得很完美。
foreach (GameObject obj1 in script1.prefab1)
{
Destroy(obj1);
}