我有一个播放器对象,它附有一个字符控制器并随键盘输入移动.
我还有一个门对象,我想在角色的碰撞触发器上打开,如果门对象需要键,我希望它只在角色有键时打开.
门上有刚体,对撞机,并且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)
任何帮助或想法都会很棒!