unity PlayMaker制作键盘控制角色移动

前言(教程说明):

1.分而治之,把游戏的功能细化成极小的实例。
2.倾向于直接动手练习,给出操作步骤,照着完成功能
3.途中遇到不理解的地方先不急,做完后,会有说明,或者你做完后就理解了。
4.学会越来越多的实例,组合它们,制作成你想要的游戏。

本篇教程实现内容:

用键盘W、A、 S、 D键控制角色移动8方向移动

最终效果:
最终效果
step1:

添加一个游戏对象Cube,取名为player

再添加一个游戏对象Plane(地板)
step2:

选中player,添加状态,改名为moving,添加action:[Controller Simple Move]


步骤2演示

如果出现下图红字的情况,点击红框就行了
微信图片_20190811221027.png

红字意思是:GameObject需要添加CharacterController Component。点击就自动添加了

step3:

设置action[Controller Simple Move]的Move Vector属性,把该属性设置为一个Global Variable的变量,变量取名为g_moveDir。
【知识点:Move Vector就是移动方向的意思,是一个Vector3的值】


步骤3演示

该功能核心就是修改g_moveDir(移动方向)来实现角色8方向移动

所以下一个步骤就是通过键盘事件修改g_moveDir

step4:

a.创建一个空的GameObject,命名为wDown;
给wDown,添加状态机,实现:按下(down)W键,g_moveDir的Z值+1(移动方向:Z轴正方向)

gif太大分成两个给大家演示:
step4a-1
说明一下这里选择按键,可以自己挨个选,也可以直接点键盘快捷录入
step4a-2

做到这里,你可以测试下游戏,按W键,player应该可以往前方移动了,但还停不下来,实现了下面的b步骤就可以实现停下来了。

b.创建一个空的GameObject,命名为wUp;
给wUp,添加状态机,实现:松开(up)W键,g_moveDir的Z值-1(Z轴方向停止)

由于wDown和wUp用到的状态机是差不多的,投机的做法就是复制一个wDown游戏对象,改名为wUp然后修改状态机,下面的gif就是演示如何修改:
步骤4B.gif

这个时候再测试游戏,你会发现按下W往前移动,松开后就停止了。


至此,场景对象是这样,如图:

step5,step6,step7其实就是分别添加
sDown(g_moveDir的z -1)sUp(g_moveDir的z +1)
dDown(g_moveDir的x +1)dUp(g_moveDir的x -1)
aDown(g_moveDir的x -1)aUp(g_moveDir的x +1)
这里就不一一添加了,大家参考step4,举一反三试试吧

如果不行,就直接下载例子项目
链接: https://pan.baidu.com/s/1Dtq1qPJjrE4QT_yY_Rm1Hw 提取码: fqj4

你可能感兴趣的:(unity PlayMaker制作键盘控制角色移动)