Unity3d 如果位置x和y与我的玩家相同,则销毁游戏对象克隆

Unity3d 如果位置x和y与我的玩家相同,则销毁游戏对象克隆,unity3d,unityscript,Unity3d,Unityscript,当我的玩家位置x和y与游戏对象(克隆)位置x和y相同时,我想销毁游戏对象(克隆)。当我触发其他东西时,游戏对象出现在我的场景中,它有刚体和长方体碰撞器 我用这个代码来控制我的播放器,但它不起作用 function Update () { if(this.transform.position.x==rigidbody.transform.position.x){ if(this.transform.position.y==rigidbody.transform.positi

当我的玩家位置x和y与游戏对象(克隆)位置x和y相同时,我想销毁游戏对象(克隆)。当我触发其他东西时,游戏对象出现在我的场景中,它有刚体和长方体碰撞器

我用这个代码来控制我的播放器,但它不起作用

function Update () {
    if(this.transform.position.x==rigidbody.transform.position.x){
        if(this.transform.position.y==rigidbody.transform.position.y){
            Destroy(rigidbody.gameObject);
        }
    }
}
我使用了代码和类似的代码,但它也不起作用,因为它没有找到变量“other”


你能帮我吗?

如果你知道是什么在生成你的克隆,你可以用不同的名字生成它们,比如“gameObject(clone)2”,然后调用Destroy()

一般来说,只要你能识别出一个物体和另一个物体,这应该不会是一个问题

如果对不想删除的对象有引用,则可以执行.Equals以避免删除它

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

不过我还是赞成最初的方法。您应该为场景中的任何对象设置引用或索引器,以便您可以管理它们。

您应该使用OnTiggerEnter并用它销毁游戏对象。。。您在更新方法中引用了碰撞器,但仅此而已。。。它没有引用我所看到的任何东西。。。在OnTiggerEnter上搜索教程。
Destroy(gameObject.Find("gameObject(clone) 2"));
// C#
foreach(GameObject go in clones) {
    if(!go.Equals(playerObject) {
        Destroy(go);
    }
}