角色idle,行走,跑步
第一步:导入模型
创建一个Plane,作为临时地面。
创建一个Capsule,命名为《Player》,去掉Mesh,保留collider,center的Y值设为1,作为角色的控制柄。
把model放在player下。为model添加animatior组件。
第二步:状态机
创建一个“Animator Controller”,命名为“Leevy”,赋值给modle。
打开Leevy,创建一个BlendTree,命名为“ground”,进入“ground”,Blend type为1D,修改Parameters为forward,最大值设为2,并添加3个Add motion field,依次拖入“idel”,"walk","run",三个animation。通过修改forward的值,来控制角色的基本动作。
第三步:代码控制
《PlayerKeyInput》,《PlayerController》
《PlayerKeyInput》模块,该模块是玩家键盘按键设置模块。把按键输入转化为信号,来控制角色。
为了不使信号转变太过生硬,这里使用SmoothDamp函数,
为了更好的控制,添加一个falg,来控制玩家能否控制角色移动
Update()里,把按键转化为坐标系里的(-1,1)信号。
把按键信号,转化为移动信号,即求的(x,y)的长度,这里牵扯到一个数学问题,斜向是,移动信号量为根号2,到达跑步的forward值。根据一个方程式来解决这个问题。
《PlayerController》里,来接收input模块传来的信号量,控制forward,来控制角色动作。
首先获得“PlayerKeyInput”脚本,刚体,状态机。
把信号转化为控制,Update():
FixUpdate():里控制角色移动量:
到此:角色可以行走,跑步,转向。