iLMS知識社群歷程檔Login
Position: 黃國哲 > Unity
1091225 觸摸場景的3D物件相關(Coll/Trigger)
by 黃國哲 2020-12-25 18:18:07, Reply(0), Views(370)

需要將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);
    }





Reply