我有一个易碎的平台,我想在它被破坏5秒后重新产生。它完美地打破并重新产生。然而预制的孩子没有一个从产卵中重新产卵。我设置平台的方式是拥有脚本,触发盒对撞机和音频源的父级。然后有4个孩子是图形,他们也从父母那里挣脱出来,一旦他们被踩到一个僵硬的身体就会打开。任何人都可以帮忙吗?
#pragma strict
var Platform : GameObject;
var child1 : GameObject;
var child2 : GameObject;
var child3 : GameObject;
var child4 : GameObject;
var audio2 : AudioSource;
private var hasPlayed = false;
function Start (){
child1.rigidbody2D.isKinematic = true;
child2.rigidbody2D.isKinematic = true;
child3.rigidbody2D.isKinematic = true;
child4.rigidbody2D.isKinematic = true;
}
function OnTriggerEnter2D(Other : Collider2D){
if(Other.gameObject.tag == "Player"){
child1.rigidbody2D.isKinematic = false;
child2.rigidbody2D.isKinematic = false;
child3.rigidbody2D.isKinematic = false;
child4.rigidbody2D.isKinematic = false;
transform.DetachChildren();
renderer.enabled = false;
audio.Play();
Respawn();
}
}
function Respawn(){
yield WaitForSeconds(5);
audio2.Play();
var PlatformClone = Instantiate(Platform, transform.position, transform.rotation);
Destroy(gameObject);
}
答案 0 :(得分:0)
我不完全确定,但我认为您的问题来自transform.DetachChildren()
。使用此命令会破坏层次结构。如果您在实例化的GameObject
上执行此操作,它将起作用。
但是如果你在prefab上做这件事,你的GameObject
在剩下的运行时就没有孩子了。
您可能有更多机会找到问题的答案here。