[英]OnTriggerEnter and OnTriggerExit called twice despite checking it
我已經閱讀了很多關於這個問題的問題,但我還沒有解決它。 我有一個帶有 Sphere Collider 的球和一個隱形牆,可以在球穿過它時重新啟動球(在 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");
}
}
}
輸出:
如您所見,每次球進入碰撞器時它進入兩次,每次球離開同一個碰撞器時它進入兩次。 我不知道這里會發生什么。
我很確定您的對象上有 2 個碰撞器,每個碰撞器都會導致事件觸發。 檢查您的組件和子對象。
Ps:我知道這是個老問題,但我的回答可以對其他人有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.