繁体   English   中英

奇怪的 Unity 预制行为?

[英]Weird Unity prefab behaviour?

在场景开始时,脚本会生成 5 个预制件的克隆,其中包括: 带有碰撞检测器的小石头和本身包含的大石头: 精灵。 为了更好的想象力,我提供了一张图片:

图片1

图2

如您所见,Rock 元素中的 Big_rock 在预制件中已正确连接。

每当我想使用 Destroy(Big_rock) 时,它实际上会从下一个预制件中销毁Big_rock ,我真的不知道它为什么会这样。

问题似乎是您在实例化 BigRock 时没有更改引用。 BigRock 作为预制件,与生成的 GameObject 不同。 您应该有第二个变量指代新生成的岩石。

请记住,场景中不存在第一个,因此您应该保存在场景中实例化的那个。

// This will be the reference to the PREFAB
public GameObject big_rock;
// This will be the referenced to the new spawned gameobject
private GameObject spawned_big_rock;

private void SpawnRock()
{
    GameObject gameobjectThatWeJustSpawned = Instantiate(big_rock);
    // We set the reference to the one that was spawned
    spawned_big_rock = gameobjectThatWeJustSpawned;
}

public void DestroyRock()
{
    // We destroy the one that was spawned
    Destroy(spawned_big_rock);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM