3.VR中的交互
VREyeRaycaster类
放入 maincamera 利用 raycast 检测 layer 来进行交互
寻找VRInteractiveItem 进行交互
Physics.Raycast(ray, out hit, m_RayLength, ~m_ExclusionLayers)
~ 反选layer
VRInteractiveItem interactible = hit.collider.GetComponent<VRInteractiveItem>()
获取RaycastHit 物体的VRInteractiveItem
private void HandleClick()
{
if (m_CurrentInteractible != null)
m_CurrentInteractible.Click();
}
利用VRInteractiveItem类 多态来执行获取物体的方法
private void OnEnable()
{
m_VrInput.OnClick += HandleClick;
m_VrInput.OnDoubleClick += HandleDoubleClick;
m_VrInput.OnUp += HandleUp;
m_VrInput.OnDown += HandleDown;
}
事件系统,把函数委托加入event 算是一种策略设计模式?
private void OnDisable ()
{
m_VrInput.OnClick -= HandleClick;
m_VrInput.OnDoubleClick -= HandleDoubleClick;
m_VrInput.OnUp -= HandleUp;
m_VrInput.OnDown -= HandleDown;
&

本文介绍了在Unity3D中如何使用VREyeRaycaster进行VR交互,通过Physics.Raycast检测物体并执行交互。利用VRInteractiveItem类的多态性和事件系统进行事件注册与管理,如OnClick事件。讲解了委托和事件在运行时动态改变执行方法的原理,并探讨了OnEnable()和OnDisable()在防止内存泄漏中的作用。文章强调了动手实践和思考在学习过程中的重要性。
最低0.47元/天 解锁文章
1438

被折叠的 条评论
为什么被折叠?



