Unity开发备忘录000028:Bolt无代码做游戏——控制角色行走

1. 添加角色

(1)添加地面碰撞器

在添加角色之前,先添加一个地面碰撞器,否则添加UnityChan角色后,由于重力的作用,她将坠入深渊。

创建一个空对象,更名为CollierOnGround,为其添加“2D盒装碰撞器”组件,并调整参数,使其放到地面,并能覆盖地面。

Unity开发备忘录000028:Bolt无代码做游戏——控制角色行走_第1张图片

(2)添加角色UnityChan

拖拽UnityChan2D.prefab至“层级面板”中。

Unity开发备忘录000028:Bolt无代码做游戏——控制角色行走_第2张图片

2. 角色移动

(1)为UnityChan2D对象添加Flow Machine组件

Unity开发备忘录000028:Bolt无代码做游戏——控制角色行走_第3张图片

(2)点击“New”按钮,创建一个流动机,命名为“ChanBeControl”,然后保存

Unity开发备忘录000028:Bolt无代码做游戏——控制角色行走_第4张图片

(3)在Variables面板的Graph标签下创建两个变量,其中变量speed作为角色的移动速度,初值为5;变量movement作为角色的移动参量,初值为0。

Unity开发备忘录000028:Bolt无代码做游戏——控制角色行走_第5张图片

(4)在Graph窗口中创建如下流程图

Unity开发备忘录000028:Bolt无代码做游戏——控制角色行走_第6张图片

其中“输入计算”部分,是通过水平轴输入值与speed变量的乘积赋给movement变量;而“速度设置”部分,这是通过设置角色的速度节点实现角色的移动,而速度的大小和方向是前面计算出来的movement值赋给的。

3. 角色转身

虽然上述的流程图实现了角色的移动,但是左右平移时角色的朝向是不会变的。所以,要通过下列的流程图实现角色根据玩家的输入键转身。

Unity开发备忘录000028:Bolt无代码做游戏——控制角色行走_第7张图片

角色的转身是通过角色的Scale值的正负来表示的,如果角色的Scale值为-1,她就朝向左面,如果角色的Scale值为+1,她就朝向右面。而何时为+1、何时为-1完全取决于玩家所按的键,若玩家按下左方向键,其movement就是负值,将movement值与0比较可得到正与负的Bool值,如果比较后的值小于0,在“Select”节点上赋给-1,如果比较后的值大于0,在“Select”节点上赋给+1,如果movement=0则不变,只有movement≠0时,流程图才能通过“Branch”节点往“Set local Scale”节点流,才能实现角色的转身。

4. 跑停控制

只会转身还不够,角色的运动还只是站立的滑行,要让她移动时跑起来,停止时站立,就需要用Bolt的流程图去调用她的动画控制器。

UnityChan的动画控制器如下:

Unity开发备忘录000028:Bolt无代码做游戏——控制角色行走_第8张图片

利用Horizontal参数调整跑停的转换。当Horizontal<-0.1时,角色从站立的状态转换到向左跑的状态;当Horizontal>-0.1时,角色从向左跑的状态转换到站立的状态;当Horizontal>0.1时,角色从站立的状态转换到向右跑的状态;当Horizontal<0.1时,角色从向右跑的状态转换到站立的状态。

于是,可以利用下面的流程图控制角色的跑停转换:

Unity开发备忘录000028:Bolt无代码做游戏——控制角色行走_第9张图片

至此,控制角色行走的功能就完成了,其效果如下:

 

老孙头课堂:https://edu.csdn.net/lecturer/3617

 

上一篇:Unity开发备忘录000027:无编程做游戏之搭建场景并实现场景跳转 

下一篇:Unity开发备忘录000029:Bolt无编程做游戏——控制角色跳跃 

你可能感兴趣的:(Unity)