簡體   English   中英

使用 OnTriggerEnter2D 檢測我的游戲對象上的某些對撞機

[英]Detecting certain colliders on my game object with OnTriggerEnter2D

所以,我有一個敵人的游戲對象,上面有 2 個觸發器。 我想要實現的是,敵人將根據玩家碰撞的觸發器進行單獨的攻擊。 所以有一個左觸發器和一個右觸發器,這些觸發器已保存到敵人游戲對象上的公共數組中。 這是我認為可以實現目標的代碼,但是 if else 語句在應該返回 true 時總是返回 false。

private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "ThePlayer")
        {
            if (collision == DamageTriggers[0])
            {
                LeftClawAttack();
            }
            else if (collision == DamageTriggers[1])
            {
                RightClawAttack();
            }
            else
            {
                Debug.Log("False");
            }
        }
    }

如果有人能告訴我我在這里做錯了什么並幫助我找到解決這個問題的方法,我將不勝感激。

感謝 Jadon Wolfgang 我已經能夠弄清楚為什么我的代碼不起作用。 所以問題是我比較的是 Box Colliders 而不是碰撞,所以為了解決這個問題,我發現你可以使用一個名為IsTouching()的函數

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "ThePlayer")
        {
            if (DamageTriggers[0].IsTouching(collision))
            {
                LeftClawAttack();
            }
            else if (DamageTriggers[1].IsTouching(collision))
            {
                RightClawAttack();
            }
            else
            {
                Debug.Log("False");
            }
        }
    }

如果其他人遇到類似問題,這里是新代碼。

暫無
暫無

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

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