1091225 觸摸場景的3D物件相關(Coll/Trigger)
by 黃國哲 2020-12-25 18:18:07, 回應(0), 人氣(502)
需要將Collider設定成Trigger
Trigger提供可以觸碰其他RigidBody的功能,但是它本身不是固體,用Trigger可以穿越其他物件
1.建立一個子彈,將它設定成Trigger
2.將要被觸碰的物件賦予RigidBody
3.在要被觸碰的物件上使用Script 參考網頁
4.
void OnTriggerEnter(Collider other) //當碰到時會執行內容
{
內容 //例如 print("碰到我") ;
}
void OnTriggerExit(Collider other) //當碰撞結束時會執行內容
{
內容 //例如 print("離開我") ; // print(other.gameObject.name) ; 顯示碰到的Trigger名稱
}
//Destroy(other.gameObject); 刪除碰到的物件
//這裡設定Tag,只有碰到指定Tag的Trigger才會執行
void OnTriggerEnter(Collider other) //當碰到時會執行內容
{
if(other.gameObject.tag == "Bullet"){print("In");}
}
///////////////////////////////////////////////////////////
2.Collision用法
建立一個可以被觸碰到的物件
賦予RidgidBody
在該物件放入下面Script,當該物件碰到其他RigidBody會執行動作
void OnCollisionEnter(Collision collision)
{
要執行的內容
}
void OnCollisionEnter(Collision collision)
{
if(coll.gameObject.tag == "Enemy") //碰到標籤Tag為Enemy的Coll才會執行動作
print("Get Hurt"); // print(collision.gameObject.name) ; 顯示碰到的Coll物件名稱
}
void OnCollisionExit(Collision collisionInfo)
{
print("No longer in contact with " + collisionInfo.transform.name);
}
回應