说到主角移动交互控制(针对于PC端),不同的游戏类型有不同的实现方案,最常见的交互控制方式:鼠标交互控制、键盘交互控制、鼠标键盘协同控制。今天咱们优就业小优为大家来分享的是采用鼠标的交互控制。
在RPG等游戏中,角色的移动交互控制就是采用的鼠标控制来实现的。有两种方式:鼠标左键自动寻路、鼠标右键实时控制。
1、鼠标左键自动寻路
自动寻路在游戏中是一个很常用的一个功能,也是非常重要的一个功能。在中大型游戏中自动寻路通常通过A*寻路算法来实现,而小型游戏我们可以采用Unity自带的Navigation导航自动寻路。
这里我们也是采用第二种方式:Navigation自动寻路导航。下面我们一起来学习下实现步骤:
1)为地图烘焙自动寻路网格
我们选用官方案例《秘密行动》的案例资源;
首先将env_stealth_static.fbx拖拽到场景中并添加网格碰撞器组件;然后将障碍物跟地图场景模型设置Static:true;最后烘焙生成寻路网格数据。效果如下:
2)为角色模型创建状态机
将角色模型char_ethan.fbx拖拽到场景中,然后在Project中创建一个动画控制器char_ethan.controller,并创建一个融合树控制角色的站立跟跑步两种行为。
3)创建脚本PlayerController.cs,并编写交互行为控制
4)参数配置
①为地面添加网格碰撞组件,并设置其Layer为Ground;
②角色Tag设置为Player,相机身上添加CameraMovement.cs跟随角色运动;
③角色身上的Animator组件去掉Apply Root Motion勾选,添加NavMeshAgent、PlayController组件;
5)播放运行,查看控制效果
2、鼠标右键实时控制
通过上述方式,我们学习了鼠标左键自动寻路功能的实现过程。但是在实际游戏中我们通常有走位控制,这个就需要我们采用鼠标右键实时控制行为了。
接下来我们一起在上面的PlayController.cs脚本中添简单修改一下代码实现这个行为控制。