[unity]tag Detect
現在有一場景,上面有很多遊戲物件,當滑鼠點擊畫面時,我們可以得到以下資訊:1、點擊位置的座標(screenspace、worldspace)2、是否點擊到物件3、點擊到哪個物件
場景中有很多物件,要做當滑鼠點擊物件時,知道是點到哪個物件。先將遊戲物件標籤,以供程式判斷;gameobject.tag
使用到Input.GetMouseButtonDown來觸發,接下來是將點擊到的位置由Screenspace轉成遊戲世界的World space
- var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
將由攝影機投射出光線,包含著位置與方向資訊。
- Physics.Raycast(ray,hit);
如果攝影機射出的光線,有碰擊到遊戲物件(collider),回返回true,然後hit會得到光線與collider在哪個位置被碰到的物件資訊。
- point = hit.point; (哪個位置)
- object = hit.transform.gameObject;(哪個物件)
#pragma strict
var Ball : GameObject;
var object: GameObject;
var point: Vector3;
function Start () {
}
function Update () {
if(Input.GetMouseButtonDown(0))
{
//Instantiate(Ball,Input.mousePosition,transform.rotation);
//print(Input.mousePosition);
var hit: RaycastHit;
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, hit))
{
point = hit.point;
object = hit.transform.gameObject;
//print(object.tag);
print(point);
Instantiate(Ball,point,transform.rotation);
}
else
{
print("SHIT");
}
}
}
Unity Document
沒有留言:
張貼留言