2016年12月13日 星期二

[Unity] 使用 Ray 射線 來觸發物件

在3D的環境中,想要點擊物件來做動作的話,就需要用RAY來達成。
以下的範例是利用RAY射線來指向物件,並用RaycastHit來取得獲得的物件。



using UnityEngine;
using System.Collections;

public class raysample : MonoBehaviour
{
    bool ishit = false;
    Ray ray;
    RaycastHit hit;
 
    // Update is called once per frame
    void Update()
    {
        ray = Camera.main.ScreenPointToRay(Input.mousePosition);      
        if (Input.GetMouseButton(0) && Physics.Raycast(ray, out hit))
        {
            ishit = true;
            //OnGUI(hit.transform.root.tag, hit.transform.name);
            Debug.Log(hit.transform.name);
            GUI.Label(new Rect(10, 10, 100, 25), hit.transform.name);//在Label顯示物件名稱
            GUI.Label(new Rect(10, 10, 100, 25), hit.transform.root.tag);//在Label顯示物件tag
            ishit = false;

        }
    }
    void OnGUI()
    {
        if (ishit)
        {
            GUI.Label(new Rect(10, 10, 100, 25), hit.transform.name);
            GUI.Label(new Rect(10, 30, 100, 25), hit.transform.tag);
        }
    }
}



如果您喜歡我的文章,請在文章最末按5下Like!
我將得到LikeCoin的回饋:)

回饋由LikeCoin基金會出資,您只要註冊/登入帳號(FB、Google帳號都可以註冊,流程超快),按L五次左鍵,可以贊助我的文章且完全不會花到錢!
支持創作,正向交流:)

沒有留言:

張貼留言