簡體   English   中英

OnTriggerEnter在Unity3D上不起作用

[英]OnTriggerEnter not working at Unity3D

我正在嘗試檢測一個籃球比賽中有球進入時丟了圈。 我在環上使用以下腳本

public class Anotar : MonoBehaviour {

    private ControlJuego control;

    void Start(){
        GameObject gameControllerObject = GameObject.FindWithTag ("ControlJuego");
        if (gameControllerObject != null)
        {
            control = gameControllerObject.GetComponent <ControlJuego>();
        }
        if (control == null)
        {
            Debug.Log ("Cannot find 'GameController' script");
        }
    }

    void OnTriggerEnter (Collision col)
    {
        control.puntuar (2);
    }

    void OnCollisionEnter (Collision col)
    {
        //control.puntuar (3);
    }
}

該環具有一個設置為對撞機的盒對撞機,以檢測OnTriggerEnter方法。 它還具有一個網格對撞機,可檢測到何時球碰到它會拋出OnCollisionEnter。 我的問題是OnTriggerEnter無法正常工作(內部使用了斷點,並且不會停止)。 實際上,OnCollisionEnter可以正常工作。 我的球有一個球體碰撞器,都使用剛體。 任何想法?

編輯:我附上我的球和戒指的屏幕截圖 在此處輸入圖片說明

在此處輸入圖片說明

您應該將運動剛體添加到籃球中。 靜態觸發器可以檢測到剛體,但是即使觸發器具有剛體,也不能檢測到移動的碰撞體。

void OnTriggerEnter (Collision col)
{
    control.puntuar (2);
}

這永遠都行不通。 OnTriggerEnter需要碰撞器而不是碰撞。 嘗試這個:

void OnTriggerEnter (Collider col)
{
    control.puntuar (2);
}

我遇到了同樣的問題,我試圖用箭射擊敵人,但一開始並未調用箭頭OnTriggerEnter(Collider collider),而是啟用了在敵人中觸發(我試圖調用該方法的身體)上),這終於解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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