我们打开上一篇01的射线点击项目,
本章要做的事情是将主角设置为一个空物体,在运行时在把主角的Prefab从Resources加载出来,(本章不涉及热更新的知识所以暂时还是使用Resources.Load()函数加载资源)我们要做的事将导航组件放在主角空父物体上,将组件动画控制器Animator挂在至主角本身上(子物体)上,下面我们要给当前的人物命名为Player
创建一个父物体
将父物体PlayerNormal挂载导航网格代理NavMeshAgent组件,并取消激活,我们上一篇写的代码中会在运行后的0.2s激活导航组件,
再添加上一篇的主角射线点击导航脚本,
并在子物体Player中删除掉这两个组件
我们运行测试一下项目仍然功能一致
现在我们需要给Player(子物体)写一个动画脚本,新建一个脚本PlayerAnimator.cs
新建一个动画控制器AnimatorController
命名为PlayerAC
连接动画控制器 - 添加闲置状态动画
添加跑步状态动画
创建线
连线
创建线的参数
设置线的参数
取消延迟
再创建线
设置线返回线
编写代码:PlayerAnimator.cs
将代码挂在至子物体Player对象上
修改父物体脚本:PlayerRayClickNavigation.cs
运行即可实现 - 主角移动动画、到达位置后停止
本篇只实现了移动播放动画效果,接下来还需做以下内容:
1.鼠标双击后主角进入跟随鼠标移动状态
2.鼠标单击地面的光标实现
3.让主角打开背包或者其他UI时点击UI功能时不会使人物进行移动(禁止射线穿透行为)
4.新输入系统的人物转向功能
5.摄像机跟随主角移动
6.人物释放技能等小功能
7.怪物的生成
以及开放回合制、坐骑系统、宠物系统、背包系统、神炼系统、商城系统、Boss的目标跟随任务导航系统以及UI播放3D动画效果等等。
具体项目运行效果请关注water1024的b站视频项目演示《破碎纪元》
【【Unity回合2.5D】破碎纪元】 https://www.bilibili.com/video/BV1Z9vYeBEH6/?share_source=copy_web&vd_source=b7b18220b3643ac4a72a537747acaa30
下一篇文章制作任务双击跟随代码、点击地面的光标显示以及射线禁止穿透行为