2014年8月6日 星期三

Unity RayCast, hit ,draw 紅外線碰撞取得資訊

設置紅外線碰撞器,可以使用 RaycastHit底下取得 collider.tag, collider.name , collider.tag 等等等等...
紅外線設置程式碼:
Raycast (位置 : Vector3方向 : Vector3長度 : float = Mathf.Infinity指定碰撞 : int = kDefaultRaycastLayers) : 回傳布林值

本次碰撞視圖:

碰撞程式碼:

using UnityEngine;
using System.Collections;

public class Shoot : MonoBehaviour {
        public Transform Gun;
 void Update () {
  /*Ray Shoot OutBounds*/
  RaycastHit hit;
  Vector3 forward = transform.TransformDirection(Vector3.forward) * 10;
  Debug.DrawRay(Gun.position,Gun.rotation * Vector3.forward * 200,Color.white);
  if(Physics.Raycast(Gun.position,Gun.rotation * Vector3.forward * 200,out hit)){
   if(Input.GetMouseButtonDown(0)){
    print("目標: " + hit.collider.tag);
    Debug.DrawRay(Gun.position,Gun.rotation * Vector3.forward * 200,Color.green);
   }
  }
}
模擬只要碰到目標,按下開槍即取得資訊

參考:
Yenlin Huang Lab Ex: http://lolikitty.pixnet.net/blog/post/54979518-unity-%E5%B0%84%E7%B7%9A(ray)%E5%B0%8D%E7%89%A9%E9%AB%94%E5%B0%84%E6%93%8A%E5%8F%96%E5%BE%97-%E5%BA%A7%E6%A8%99 

Unity 聖典 Raycast.collider : http://game.ceeger.com/Script/RaycastHit/RaycastHit.collider.html
Unity 聖典 DrawRay: http://game.ceeger.com/Script/Debug/Debug.DrawRay.html
Unity 聖典 Raycast: http://game.ceeger.com/Script/Physics/Physics.Raycast.html

Unity Official Api Ray: http://docs.unity3d.com/ScriptReference/Ray-ctor.html

沒有留言:

張貼留言

© Mac Taylor, 歡迎自由轉貼。
Background Email Pattern by Toby Elliott
Since 2014