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,阿宅创造奇迹!!