Gameobject不会实例化预制儿童

时间:2015-02-08 21:23:06

标签: unity3d unityscript

我有一个易碎的平台,我想在它被破坏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);
}

1 个答案:

答案 0 :(得分:0)

我不完全确定,但我认为您的问题来自transform.DetachChildren()。使用此命令会破坏层次结构。如果您在实例化的GameObject上执行此操作,它将起作用。

但是如果你在prefab上做这件事,你的GameObject在剩下的运行时就没有孩子了。

您可能有更多机会找到问题的答案here