如果位置x和y与我的播放器相同,则销毁gameObject clone

时间:2014-05-15 17:02:50

标签: unity3d unityscript

当我的玩家位置x和y与gameObject(克隆)位置x和y相同时,我想破坏gameObject(克隆)。当我触发其他东西并且它有刚体和盒子对撞机时,gameObject出现在我的场景中。

我将此代码用于我的播放器,但它无法正常工作

function Update () {
    if(this.transform.position.x==rigidbody.transform.position.x){
        if(this.transform.position.y==rigidbody.transform.position.y){
            Destroy(rigidbody.gameObject);
        }
    }
}

我使用了代码并且喜欢它,但它也没有用,因为它没有找到变量"其他"

function Update () {
    var other:Collider;
    if(this.transform.position.x==other.transform.position.x){
        if(this.transform.position.y==other.transform.position.y){
            Destroy(other.gameObject);
        }
    }
}

你能帮我吗?

1 个答案:

答案 0 :(得分:0)

如果你知道什么产生你的克隆,你可以用不同的名称产生它们,如“gameObject(clone)2”,然后调用Destroy()。

Destroy(gameObject.Find("gameObject(clone) 2"));

一般情况下,只要你能从另一个中识别出一个对象,这应该不是问题。

如果您引用了该对象,则不会删除它,那么您可以执行.Equals以避免删除它。

// C#
foreach(GameObject go in clones) {
    if(!go.Equals(playerObject) {
        Destroy(go);
    }
}

我赞成最初的方法。您应该为场景中的任何对象提供引用或缩进,以便您可以管理它们。