第三人称角色控制_第二章
进入正式游戏的控制脚本
两个布尔,都是true
删掉旧存档,创建一个新的
初始化玩家数据,具体实现; 这里也用到了,前面序列化相关的逻辑
完成初始化之后,会把数据存起来
把玩家数据,用二进制的方式,存到本地文件,作为存档 如果本地文件不存在,就创建即可
然后,初始化数据
加载玩家 移动速度等相关数据; 根据玩家部件数据,加载各个部件 动画的切换,使用的是有限状态机,默认是idle状态的动画
简介:
源码地址
也可以在包管理,直接搜索下载
入口
运行游戏,可以切换页签,查看当前动画播放相关
playabe实现的具体逻辑脚本:
动画节点基类 需要有端口,设置速度 而且也有对象池回收相关
基类有俩继承者,分别是单动画播放,还有混合动画播放
都会这个标签特性,表示池子属性
根据配置,这里有仨动画
初始化 inputCount里面,是有三个动画
运行游戏,创建图的命名就会出现
上下节点,还有两个port端口,用来修改动画改变的权重
切换不同的动画节点,也是需要销毁旧节点 解除跟PlayableGraph的链接,然后把节点,放回对象池
切换用了协程
单次播放动画: 如果是首次播放,就不需要销毁节点,只需要初始化,设置权重即可
混合动画,也是同理
混合动画,会传递两个动画片段
混合动画节点类,有两个初始化函数,其中一个是传递列表,另一个是单独分开两个clip片段
后者是使用的,分别传递两个动画片段
设置端口索引
动画事件的添加 是往事件字典里面加的
角色步行的时候,加上
整一个随机数,播放脚步声
脚本声资源有这些,随机播放一个
播放音效之后,也会回收资源
这个事件函数,会触发动画事件
同名的动画事件,跑步和走路的,都是这个
移动的时候,断点触发
状态切换,用了有限状态机的相关逻辑 设置默认状态是idle
默认播放idle动画
单次:
这是从配置文件,获取动画名字的接口:
默认状态下的update函数,判断输入,切换到move状态
然后,就到了移动的状态节点了; 移动状态用到了,混合动画节点:走路和跑步,走路的index是0,跑步是1; 这里是核心的修改两者权重的逻辑
移动状态初始化,默认是走路的权重
移动状态节点的更新函数; 按住LeftShift的时候,会切换;
相机的旋转和玩家角色的旋转,逻辑处理
运行游戏,角色直走的时候,移动鼠标修改镜头,角色也会跟随旋转
动画的播放速度,影响实际位移速度:
最终在这里触发