VRTK3.3.0 代码控制显示隐藏,UI射线
1丶先复制示例场景2,偷一波资源
2丶在右手控制器上,添加脚本
调整VRTK_Pointer设置,如下
3丶添加重写VRTK_UIPointer脚本
using VRTK; public class MyUIPointer : VRTK_UIPointer { public bool myHead; public bool showState ; public override bool PointerActive() { if (myHead) { return showState; } else { return base.PointerActive(); } } }
4丶创建脚本,用来控制UI射线的状态
using UnityEngine; using VRTK; public class MyVRController : MonoBehaviour { [Header("与UI交互的VRTK_Pointer")] public VRTK_Pointer vRTK_Pointer; [Header("自己重写的UIPointer")] public MyUIPointer myUIPointer; // 显示隐藏UI交互射线 public void ActiveState(bool isActive) { if (isActive) { vRTK_Pointer.Toggle(true);// 这里需要显示两次,我也不知道为什么,有看到知道的,求评论告知,谢谢 vRTK_Pointer.Toggle(true); myUIPointer.showState = true; } else { vRTK_Pointer.Toggle(false); myUIPointer.showState = false; } } // 初始状态 private void OnEnable() { if (myUIPointer.myHead) { ActiveState(myUIPointer.showState); } } }
5丶最后设置如下,测试按J显示射线,按K隐藏