Unity3D之簡單的點擊拾取

新建一個Cube物體和一個腳本Cube,將Cube腳本掛到Cube物體上,代碼如下:

[csharp] view plain copy
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class Cube : MonoBehaviour   
  5. {  
  6.     void OnTouched()  
  7.     {  
  8.         Debug.Log("該物體被選中了!");  
  9.     }  
  10. }  

新建一個空物體,命名爲TouchManager,新建一個腳本TouchManager,將該腳本掛到空物體上,代碼如下:

[csharp] view plain copy
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class TouchManager : MonoBehaviour   
  5. {  
  6.     public Camera cam;  
  7.     private float timeHit = 0f;         //用於點擊的時間間隔,每次點擊時間間隔應大於0.2秒  
  8.   
  9.     void Update()  
  10.     {  
  11.         timeHit += Time.deltaTime;  
  12.         if (timeHit > 0.2f)  
  13.         {  
  14.             if (Input.GetMouseButton(0))  
  15.             {  
  16.                 timeHit = 0f;  
  17.                 RaycastHit hit;  
  18.                 bool isHit = Physics.Raycast(cam.ScreenPointToRay(Input.mousePosition), out hit, 100f);  
  19.                 if (isHit)  
  20.                 {  
  21.                     hit.collider.gameObject.SendMessage("OnTouched", SendMessageOptions.DontRequireReceiver);  
  22.                 }  
  23.             }  
  24.         }  
  25.     }  
  26. }  

OK,完成!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章