簡體   English   中英

盡管檢查了 OnTriggerEnter 和 OnTriggerExit,但它還是調用了兩次

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM