我在 2D 專案中遇到了統一問題。OnTriggerEnter2D 似乎沒有被呼叫,因為我在控制臺上沒有列印。
這是呼叫 OnTriggerEnter2D 的腳本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AbilityUnlock : MonoBehaviour
{
void OnTriggerEnter2D(Collider2D other)
{
Debug.Log("Test");
if(other.tag == "Player")
{
Debug.Log("Player tag ");
Destroy(gameObject);
}
}
}
游戲物件碰撞器
!
專案沖突

播放器的 RigidBody2D

玩家的標簽

腳本附加到游戲物件。
可能我錯過了一些我看不到的東西。非常感謝任何幫助。
謝謝
uj5u.com熱心網友回復:
當遇到觸發器輸入問題時,我總是檢查五件事。
- 兩個物件都位于可以相互互動的物理層上
- 兩個物件都有
collider2d組件 - 輸入的物件有一個
rigidbody2d組件 - 輸入的物件
collider2d設定為trigger - 輸入物件的未
collider2d設定為trigger
從您的問題看來,您已經完成了步驟1)和4)看起來不錯。
正如其他答案指出的那樣,最有可能的候選人是3) -rigidbody2d不在您輸入的物件上。
如果這些都不起作用,那么您可以嘗試一些更極端的措施,例如將剛體設定為永不休眠或使用插值模式,但試一試。
uj5u.com熱心網友回復:
因此,事實證明具有 collider2D 的游戲物件沒有玩家標簽,即使它是玩家游戲物件的孩子。將玩家標簽應用到具有 collider2D 的游戲物件而不是他的父母解決問題。
uj5u.com熱心網友回復:
您需要游戲物件上的 Rigidbody2d 組件。不僅在播放器上。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/449577.html
標籤:unity3d
上一篇:如何在實體化之前獲取預制件大小?
