我有一個代碼,我需要當player_
物體接觸到帶有bomb
標簽的物體時,會發生以下動作,但是當bg_
物體接觸到帶有bomb
標簽的物體時,應該什么都不會發生,怎么寫?
public class Player_ : MonoBehaviour{
public GameObject player_;
public GameObject bg_;
public static bool lose = false;
void Awake(){
lose = false;
}
void OnTriggerEnter2D (Collider2D other){
if (other.gameObject.tag == "bomb")
lose = true;
player_.gameObject.SetActive (false);
bg_.gameObject.SetActive (false);
}
}
uj5u.com熱心網友回復:
雖然標簽可以滿足您的需要,但我想提醒您不要使用它們。
相反,使用基于層的碰撞,并使用層而不是標簽。這有效地做了同樣的事情,但它實際上完全阻止了物理相互作用,防止浪費計算能力。
與其為玩家添加標簽,不如為“玩家”創建一個圖層,為“Interactables”(或“炸彈”,如果您只有玩家與炸彈互動)創建一個圖層。分別設定圖層,修改碰撞矩陣,使得只有Player上的東西可以和Interactables碰撞。這樣,其他物件甚至不會觸發碰撞,您無需構建邏輯來忽略它。
uj5u.com熱心網友回復:
在您的炸彈上,您可以有一個 OnTriggerEnter2D,當有東西觸發它時,您只需查看標簽并做出適當的反應。
void OnTriggerEnter2D (Collider2D other){
if (other.gameObject.tag == "Player")
{
Do Something();
}
}
這樣,當其他東西觸發它時,什么都不會發生
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/471705.html
上一篇:遞回回圈和DFS
下一篇:創建材料陣列的陣列