低調の美國生活

各種疑難雜症

Unity Raycast 沒有反應!?附贈Mouse Raycast與iOS/Android Raycast

x323
4月20日2012年

通常是因為Collider的問題

在目標物件必需要有collider  不需Trigger 不需加Rigidbody

如果script中同時有Mouse的Raycast和input touch的Raycast 可能會造成在iOS Device(如iPad)中Raycast無法正常作用

C#程式碼如下:

將以下script加在Camera下面

void Update ()
{
//在PC/Mac用滑鼠點擊測試
if(Input.GetMouseButtonDown(0))
{
ray = camera.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
//依物件名稱作不同的點擊判定
if(hit.collider.name ==”Level”) LoadLV1();
if(hit.collider.name ==”ReadMe”) LoadReadMe();
}
}
}

void Update ()
{
//Raycast on iOS/Android
for (i=0; i {
if (Input.GetTouch(i).phase == TouchPhase.Began)
{
ray = camera.ScreenPointToRay (Input.GetTouch(i).position);
if (Physics.Raycast(ray, out hit))
{
//依物件名稱作不同的點擊判定
if(hit.collider.name ==”Level”) LoadLV1();
if(hit.collider.name ==”ReadMe”) LoadReadMe();
}
}
}
}


發佈於 4月20日2012年