Unity 使用VRTK获取射线检测碰触的物体信息

steam VR 版本:SteamVR plugin for Unity - v1.2.3
VRTK版本:VRTK - Virtual Reality Toolkit - [ VR Toolkit ]3.3.0

检测三维物体

1、创建脚本,并获取VRTK_Pointer的引用
2、注册DestinationMarkerEnter方法

VRTK_Pointer vrtk_point;
 void Start()
    {
        vrtk_point = this.gameObject.GetComponent<VRTK_Pointer>();
        vrtk_point.DestinationMarkerEnter += enter; 
    }
    private void enter(object sender, DestinationMarkerEventArgs e)
    {
        Debug.Log("当前碰触:"+e.target);
        Debug.Log("当前碰触:" + e.raycastHit.collider.gameObject.name);
    }
    void DisEnble() {
        vrtk_point.DestinationMarkerEnter -= enter;
    }

检测UGUI组件物体

1、创建脚本,并获取VRTK_UIPointer引用
2、注册UIPointerElementEnter方法(我这里也注册了UI点击事件的方法UIPointerElementClick)

 VRTK_UIPointer vrtk_uiPoint;
   void Start()
    {
        vrtk_uiPoint= this.gameObject.GetComponent<VRTK_UIPointer>();
        vrtk_uiPoint.UIPointerElementClick += Vrtk_uiPoint_UIPointerElementClick;
        vrtk_uiPoint.UIPointerElementEnter += Vrtk_uiPoint_UIPointerElementEnter;
    }
    private void Vrtk_uiPoint_UIPointerElementEnter(object sender, UIPointerEventArgs e)
    {    
         Debug.Log("碰触到UI" + e.currentTarget);        
    }
     private void Vrtk_uiPoint_UIPointerElementClick(object sender, UIPointerEventArgs e)
    {
         Debug.Log("当前点击UI物体:"+e.raycastResult.gameObject); 
    }
    void DisEnble() {
        vrtk_uiPoint.UIPointerElementClick -= Vrtk_uiPoint_UIPointerElementClick;
        vrtk_uiPoint.UIPointerElementEnter -= Vrtk_uiPoint_UIPointerElementEnter;

    }
    
  • 0
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值