unity中射線檢測需設定所需層級時,必須加上距離!!!
//一條從主相機到屏幕點擊點的射線
Ray ray = Camera.Main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
//發射一條射線返回相關信息(如需設定檢測所需層級,距離一定要加!!!)
//CanRay為定義的LayerMask層,如無法手動添加選擇,可代碼
// int CanRay=1 << 10 ;
/*
1 << 10 打開第10的層。
~(1 << 10) 打開除了第10之外的層。
~(1 << 0) 打開所有的層。
(1 << 10) | (1 << 8) 打開第10和第8的層。
*/
if (Physics.Raycast(ray, out hit, 1000, CanRay))
{
if (hit.transform.gameObject.name == "renwu")
{
print("移動射線檢測打到了人物");
}
//當父子物體都有碰撞器時,如需檢測子物體,需將父物體層級關閉,或只打開子物體層級
//但如需獲取子物體信息時,需用hit.collider.name(名字),如用hit.transform.name時,返回的是父物體名字
}