以滑鼠、觸控方式判斷並觸發物件

因為某些需求,需要用觸控、滑鼠點擊物件的方式去觸發函數,可以嘗試使用這個方式。
不過判斷沒寫得很詳細,相信如果搞懂這個方式,應該有足夠能力寫更細部的判斷(圖層、標籤、距離、不同滑鼠或觸控動作)
將腳本撰寫好後拖拉到攝影機上就可以使用了。



#pragma strict
// 宣告 私有 射線判斷距離
private var rayDistance : float = 100.0;
function Update () {
touchRay();
mouseRay();
}
// 觸控碰觸物件判斷
function touchRay(){
// 假使 觸控點 大於1
if (Input.touchCount > 0){
// 迴圈判斷觸控點
for (var i = 0; i < Input.touchCount; ++i) {
// 假使 觸控進入
if (Input.GetTouch(i).phase == TouchPhase.Began) {
// 宣告射線,由鏡頭觸控座標射出
var ray = Camera.main.ScreenPointToRay (Input.GetTouch(i).position);
var hit : RaycastHit;
// 假使碰觸到物件 且距離於 rayDistance 內
if (Physics.Raycast (ray , hit , rayDistance) ){
// 將碰觸物件材質球顏色 改為 紅色
hit.collider.renderer.material.color = Color.red;
}
}
}
}
}
// 滑鼠游標碰觸物件判斷
function mouseRay(){
var ray : Ray = camera.ScreenPointToRay (Input.mousePosition);
var hit : RaycastHit;
// 畫出黃色射線於編輯器
Debug.DrawRay (ray.origin, ray.direction * rayDistance, Color.yellow);
if (Physics.Raycast (ray , hit , rayDistance) ){
//Debug.Log("X =" + hit.textureCoord1.x.ToString() + "Y =" + hit.textureCoord1.y.ToString());
// 將碰觸物件材質球顏色 改為 紅色
hit.collider.renderer.material.color = Color.red;
}
}

留言

這個網誌中的熱門文章

參加畢業展之設計類展場小心得

Unity 判斷兩物之間距離、角度,並注視目標

Action Game Maker 1.03 正體中文漢化版