Controller
提取公共方法
我们将PlayerController的Animator引用提取到它的父类Controller中,并且将其中的SetBlend(改名前叫做SetAnimTreeBlend)方法提取到父类Controller中,父类中的SetBlend是个虚方法,这样子类Controller通过覆写它就能实现不同的角色控制效果。
我们将PlayerController的isMove、dir、Dir变量和属性提取到它的父类Controller中
Controller:
1 | using UnityEngine; |
PlayerController删除掉之前的Animator引用,并且重载虚方法
1 | public override void SetBlend(float blend) |
修改状态类
修改StateIdle
1 | public void Process(EntityBase entity) |
修改State
1 | public void Process(EntityBase entity) |
前面我们说过,状态类会作用于逻辑实体,而逻辑实体引用了自己的controller,让controller来承担表现逻辑。
接下来,只需要在BattleMgr里面修改EntityPlayer就可以了。
1 | public void SetSelfPlayerMoveDir(Vector2 dir) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ATAO2017,阿宅创造奇迹!!


