Unity3D C# 物件碰撞刪除、碰撞偵測運用
Unity3D碰撞檢測分為2種:
1. 觸發檢測 //aaa為自定義碰撞事件
•當進入觸發器,void OnTriggerEnter( Collider aaa)
•當退出觸發器,void OnTriggerExit( Collider aaa)
•當停留觸發器,void OnTriggerStay( Collider aaa)
2. 碰撞檢測 //aaa為自定義碰撞事件
•當進入碰撞器,void OnCollisionEnter( Collision aaa)
•當退出碰撞器,void OnCollisionExit( Collision aaa)
•當停留碰撞器,void OnCollisionStay( Collision aaa)
2種方式最簡單的區別就是;
觸發器的方式下物件的" Is Trigger "" 可以"勾選,
碰撞器的方式下物件的" Is Trigger "" 不可以 "勾選。
Is Trigger 不勾選表示物件,受到碰撞或重力影響,
Is Trigger 勾選表示物件,不受到碰撞或重力影響,
首先在畫面中建立2個Cube,分別命名CubeA和CubeB,CubeA在上方,準備自由落體;
腳本放在CubeB中。
範例一:A物件自由落體時,穿越B物件,除錯視窗顯示" OK ";以物件名稱作為判別。
(A物件Is Trigger " 不勾選,B物件Is Trigger " 勾選 " )
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour
{
void OnTriggerEnter(Collider aaa) //aaa為自定義碰撞事件
{
if (aaa.gameObject.name == "CubeA") //如果aaa碰撞事件的物件名稱是CubeA
{
print("OK"); //在除錯視窗中顯示OK
}
}
}
範例二:A物件自由落體時,停留B物件,除錯視窗顯示" OK ";以物件名稱作為判別。
(A物件Is Trigger " 不勾選,B物件Is Trigger " 不勾選 " )
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour
{
void OnCollisionEnter(Collision aaa) //aaa為自定義碰撞事件
{
if (aaa.gameObject.name == "CubeA") //如果aaa碰撞事件的物件名稱是CubeA
{
print("OK"); //在除錯視窗中顯示OK
}
}
}
範例三:A物件自由落體時,觸發B物件,進行物件刪除;以物件標籤名稱作為判別。
這裡必須先設定CubeA的標籤為" test "。
(A物件Is Trigger " 不勾選,B物件Is Trigger " 勾選 " )
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour
{
void OnTriggerEnter(Collider aaa) //aaa為自定義碰撞事件
{
if (aaa.gameObject.tag == "test") //如果aaa碰撞事件的物件標籤名稱是test
{
Destroy(aaa.gameObject); //刪除碰撞到的物件(CubeA)
}
}
}
範例四:A物件自由落體時,碰撞B物件,進行物件刪除;以物件標籤名稱作為判別。
這裡必須先設定CubeA的標籤為" test "。
(A物件Is Trigger " 不勾選,B物件Is Trigger " 不勾選 " )
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour
{
void OnCollisionEnter(Collision aaa) //aaa為自定義碰撞事件
{
if (aaa.gameObject.tag == "test") //如果aaa碰撞事件的物件標籤名稱是test
{
Destroy(aaa.gameObject); //刪除碰撞到的物件(CubeA)
}
}
}
Las Vegas (MGM) Resort Hotel and Casino - JT Hub
回覆刪除Located 원주 출장안마 right on the Las Vegas Strip, this luxurious resort 충청남도 출장안마 and casino features 50000 square feet of 경상남도 출장샵 meeting and 목포 출장샵 event space. · Located right on 인천광역 출장마사지 the