Steam VR2.0.1激光检测到UGUI(一)

2019-01-17  本文已影响0人  WOTTOW

    最近在想激光与UGUI怎么互交,我脑袋的第一反映是射线与UI添加collider碰撞,获取UI的Button组件,执行相应事件。我也这样写了,但效果确实不咋的。没办法只能重写了。我在社区看见有人说可以用UI系统自带的PointerEventData可以实现功能,于是就花时间看了看,有点收获在此记录一下。

1.创建玩家可以看见的激光

这个我就不写了,与网上搜出来的也差不多,

2.创建UICamrea

因为Canvas 的World Space 需要一个Event Camrea 来出来UI的事件

定义一个相机UICamrea,具体的代码如下

3.创建射线

      定义  : 

 private PointerEventData[] pointEvents;

并在Start初始化

pointEvents = new PointerEventData[2];

需要添加

using UnityEngine.EventSystems;

同时创建的类需要继承BaseInputModule

同时 要提醒重写Process()

public override void Process()

    {

  print(GUIRaycast(0));//测试

    }

GUIRaycast的具体代码

需要把画布上的标准接收器给禁用掉

以上就可以用VR手柄的射线检测到UI。 

上一篇 下一篇

猜你喜欢

热点阅读