我有一个2d游戏,其中有一个原始的敌人忍者。我创建了产卵脚本来克隆我原来的忍者。然后我将它放在我的主相机上,使我的忍者克隆在主摄像机视图中产生。我的原始忍者也有一个脚本,几秒后它将被删除。我意识到删除原来的忍者导致我的克隆忍者没有出现,但是我想删除任何克隆的对象,这样我就不会过度运行我的项目了。
有没有办法可以删除产卵克隆忍者没有触及原始的忍者。或者在检查器中隐藏我的原始忍者,而不隐藏产生的克隆。
这是我的破坏忍者代码:
private var barCode: BarCode? = null
override fun getBarCode(): BarCode? = barCode
fun setBarCode(barCode: BarCode) {
this.barCode = barCode
}
答案 0 :(得分:0)
如果您不希望原始忍者在场景中,请不要在场景中使用它。将其从场景拖动到Project Explorer中。这将创建一个Ninja的预制件。然后,您可以从场景中删除Ninja。
现在有一个ObjectSpawner.cs脚本,其任务是生成预制件。忍者,如:
public class ObjectSpawner : MonoBehaviour
{
public GameObject prefab;
void Start()
{
GameObject.Instantiate(prefab, transform.position, transform.rotation);
}
}
将ObjectSpawner分配给场景中的空GameObject,并将之前创建的Ninja Prefab分配给其prefab
字段。一旦游戏开始,这将在你的NinjaSpawner对象的位置产生一个忍者。
你的Ninja.cs脚本将负责在忍者时间结束时摧毁忍者:
public class Ninja : MonoBehaviour
{
void Start()
{
StartCoroutine(DestroyDelayed());
}
IEnumerator DestroyDelayed()
{
yield return new WaitForSeconds(4f);
Destroy(gameObject);
}
}
确保将脚本分配给Ninja对象。