unity3d教程:如何控制人物移动(RPG游戏黑暗之光)
发表于2017-03-12
在游戏开发中要怎样实现控制人物移动?下面以RPG游戏黑暗之光的人物移动为例,给大家讲讲使用Unity3D开发人物移动问题,一起来看看吧。
一、角色的移动
前期工程已经实现了朝向点击方向,则现在只需要让角色向前移动即可。脚本如下:
二、角色移动动画的播放
上述脚本实现了角色模型的平移,现在需要给角色加入移动动画的控制。
首先在角色移动脚本中加入移动状态控制标示位,更新脚本如下:
上述脚本尽管确定了标示位的状态,但是还是没有实现播放动画的功能,那么我们只需要创建动画播放脚本驱动角色改进就可以了,脚本如下:
这样就实现了角色的移动及动画的播放。
经过上述工程,实现了角色的移动功能。但是经过测试,发生了BUG,当角色因地形或其他遮蔽无法顺利抵达TargetPosition时,角色就会一直朝面向方向走下去。
这明显是不符合要求的。
我们把角色运动过程进行分解如下:
鼠标按下 → 确定目标点 → 鼠标松开 → 角色转向 → 计算角色与目标点距离 → 角色前进 → 角色到达目标范围 → 角色停止
明显,角色到达目标范围永远返回false,因为角色的朝向在鼠标松开那一刻便已经决定了,如果沿此方向不能达到目标点,那么角色就会超过最小范围圈,一直运动下去。
那么,需要在鼠标松开后,对角色运动状态进行检测,如果角色处于移动中,那么要求角色始终朝向目标点。
我们对PlayerDirection类进行优化,如下:
以上,便解决了该BUG。