小编Kay*_*Jin的帖子

Unity C# - OnTriggerEnter被调用但字符控制器对象正在通过

我有一个播放器对象,它附有一个字符控制器并随键盘输入移动.

我还有一个门对象,我想在角色的碰撞触发器上打开,如果门对象需要键,我希望它只在角色有键时打开.

门上有刚体,对撞机,并且isTrigger打开了.不知怎的,OnTriggerEnter被称为,但玩家通过门,如果玩家有钥匙或者如果needKey是假,则玩家不会通过.我试过了OnTriggerstay,它也是一样的.

这是门脚本

void OnTriggerEnter(Collider other){

        GameObject key = null;
        if(other.gameObject.tag=="Player"){

            if(needKey){

                Debug.Log ("checking!"); //prints fine
                if(troll.gameObject.activeSelf && tc.carryingKey){
                    key = troll.transform.FindChild("key_" + this.gameObject.name).gameObject;

                }

                if(key!=null){
                    Debug.Log(key.name);
                    StartCoroutine(OpenTheDoor());
                    tc.Skill();
                    needKey=false;
                    Destroy(key);
                    key=null;
                }else{
                    //Debug.Log("no key"); //prints fine
                }
            }else{
                StartCoroutine(OpenTheDoor());
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助或想法都会很棒!

c# unity-game-engine

0
推荐指数
1
解决办法
2056
查看次数

标签 统计

c# ×1

unity-game-engine ×1