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;
}
事件系统 OnEnable()和OnDisable() 同时 += -= 函数 注册和取消事件函数,防止内存泄漏。
OnEnable()和OnDisable() Script Lifecycle
在该脚本Enable或者Disabl