组件框架介绍

lua层的组件框架设计主要是为了便于维护lua层器材的代码,同时也是为了器材部分方便使用C#层提供的组件设计的一种框架,使得lua层的代码易读,整洁。
ComponentBase是所有组件的父类,提供了组件的整个生命周期事件以及一些辅助函数的实现。通过继承此类来创建一个组件,LabeComponent、AudioComponet、AnimComponent等都是继承了ComponentBase的一个子类。
Inst 是场景中的一个实体,比如一个玩家或者一颗子弹,通过往inst上绑定Component,来使其具有相关的功能。Inst的基类中有一个AddLuaComponent的方法,通过该方法,并传入要绑定的组件名称,即可为inst实例绑定一个组件。

1.组件实例化方法


需要使用组件的器材将自身的表传入即可实例化一个组件。

2.可供重写和使用的方法


器材层面可供使用和重写的方法在存在这个表中,通过一个构造函数来访问这个表,_call是lua中的元方法,当元表中存在该方法时,通过table(cmpName)的方式就会调用到_call对应的方法,通过这种方式,来实现类似C#中构造函数的效果。

3.Update方法的使用

组件框架本身继承了C#层提供的Update方法,会在每帧调用

组件层面需要在RegisterUpdateEvent方法中将自定义需要在Update方法中调用的逻辑传入

再通过UnRegisterUpdateEvent取消注册

4.通过组件判断器材层面AC组件依赖的方法

组件层可以调用该方法来判断器材是否有绑定组件所需的AC组件

然后在组件初始化的时候判断器材是否有这个组件,如果没有,则输出错误日志提醒器材