在这里进一步体会到了事件及事件系统的可扩展性
在EventHandler添加ItemUsedEvent事件:
用于触发当物品被使用(交互完毕)的事件逻辑
【资料图】
现在要做的事:“当我们把钥匙放在信箱上,信箱打开出现船票,钥匙消失”
对于信箱是否开启还是关闭,需要另外添加事件逻辑,也就是当场景加载完毕后需要处理的事情。
首先MailBox作为Interactive的子类,重写了 void OnClickedAction()函数,也就是点击之后的动作(切换打开状态,信封显示)
然后对应逻辑(管理)层InventoryManager需要移除被点击的物品信息(也就是钥匙)
在该类里补充ItemUsedEvent事件的细节:
也就是在Interactive中 CheckItem(ItemName itemName)函数,当交互成功时触发
交互结束后我们还需要把手的图标隐藏,在 CurSorManager里继续添加如下代码:
依旧是ItemUsedEvent事件,但是却是不同的逻辑
事件系统的重要性在于可以触发某一事件后,绑定在上面的逻辑函数都会触发,执行不同的逻辑,单独创建一个EventHandler让事件的创建、事件的绑定、事件的触发变的清晰,尤其是对于那些同一委托绑定了好几个触发函数,该类的创建不会让其显得复杂和混乱。
标签: