Unity3D官方VR教学学习笔记之事件event与委托delegate

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值