我已经阅读了很多关于这个问题的问题,但我还是无法解决。我有一个带有球体对撞机的球和一个看不见的墙,当它通过它时重新开始球(在onTriggerExit方法上)。问题是我无法解决它,即使使用布尔值也无法进入方法。
public class ballRestart : MonoBehaviour
{
shootController instance;
bool isColliding;
// Use this for initialization
void Start()
{
instance = Camera.main.GetComponent<shootController>();
isColliding = false;
}
public void OnTriggerEnter(Collider col)
{
Debug.Log("TeEnter: " + isColliding);
if (!isColliding)
{
isColliding = true;
Debug.Log("TRIGGERED: " + isColliding);
}
}
void OnTriggerExit(Collider hit)
{
Debug.Log("TeExit: " + isColliding);
if (isColliding)
{
instance.initializeBall();
isColliding = false;
Debug.Log("exit");
}
}
}
输出:
Here is the output of the Logs
如你所见,每次球进入对撞机时进入两次,每次球离开同一对撞机进入两次。我不知道这里发生了什么。
答案 0 :(得分:0)
我很确定您的对象上有2个碰撞器,每个碰撞器都会引起事件触发。检查您的组件和子对象。
P.s .:我知道这是个老问题,但是我的回答可能对其他人有帮助。