前言(教程说明):
1.分而治之,把游戏的功能细化成极小的实例。
2.倾向于直接动手练习,给出操作步骤,照着完成功能
3.途中遇到不理解的地方先不急,做完后,会有说明,或者你做完后就理解了。
4.学会越来越多的实例,组合它们,制作成你想要的游戏。
本篇教程实现内容:
用键盘W、A、 S、 D键控制角色移动8方向移动
step1:
添加一个游戏对象Cube,取名为player
step2:
选中player,添加状态,改名为moving,添加action:[Controller Simple Move]
红字意思是:GameObject需要添加CharacterController Component。点击就自动添加了
step3:
设置action[Controller Simple Move]的Move Vector属性,把该属性设置为一个Global Variable的变量,变量取名为g_moveDir。
【知识点:Move Vector就是移动方向的意思,是一个Vector3的值】
该功能核心就是修改g_moveDir(移动方向)来实现角色8方向移动
所以下一个步骤就是通过键盘事件修改g_moveDir
step4:
a.创建一个空的GameObject,命名为wDown;
给wDown,添加状态机,实现:按下(down)W键,g_moveDir的Z值+1(移动方向:Z轴正方向)
做到这里,你可以测试下游戏,按W键,player应该可以往前方移动了,但还停不下来,实现了下面的b步骤就可以实现停下来了。
b.创建一个空的GameObject,命名为wUp;
给wUp,添加状态机,实现:松开(up)W键,g_moveDir的Z值-1(Z轴方向停止)
这个时候再测试游戏,你会发现按下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