运行游戏的时候,可以看到,是有两个mixer的 ![[Pasted image 20240306142609.png]] 第一个mixer混合器,就是总的,动画混合器 ![[Pasted image 20240306142647.png]] 第二个mixer混合器,是开始步行的时候,才新增的; 有步行和跑步,俩动画,inputcount是2; 然后链接俩mixer混合器 ![[Pasted image 20240306143307.png]] 混合动画节点中,创建动画片段的,具体逻辑 ![[Pasted image 20240306143753.png]] 设置权重的接口封装 ![[Pasted image 20240306143955.png]] 有可能存在,摄像头被环境,挡住的情况; 先添加一个layer层级,设置给Env环境 ![[Pasted image 20240306153557.png]] 添加一个碰撞器相关脚本,然后设置一下标签 其他参数,也参考设置一下 ![[Pasted image 20240306153709.png]] 运行游戏,角色来到墙壁前面的时候,就会触发,碰撞器,无法向前旋转 ![[Pasted image 20240306153831.png]] 需要注意,环境本体,和子物体,也都是有碰撞器的 ![[Pasted image 20240306154115.png]] 框架内,这是扩展功能接口 ![[Pasted image 20240306154315.png]] 例如,获取类相关 ![[Pasted image 20240306154354.png]] 数组对比: ![[Pasted image 20240306154423.png]] 判空逻辑: ![[Pasted image 20240306154515.png]] 主要用来检测,gameobject和音频是否为空 ![[Pasted image 20240306154540.png]] 资源管理相关,就跟框架内置,对象池管理器,配合使用 ![[Pasted image 20240306154708.png]] 对象池管理器,有两个容器列表,分别是游戏实体字典,和普通实体字典 ![[Pasted image 20240306154759.png]] 其中,游戏实体类,构造函数,逻辑上,就是创建一个新的游戏实体,然后,放到对应的父物体即可; 还会整一个poolQueue队列容器,存放对象 ![[Pasted image 20240306154910.png]] 这里的父物体,是传参过来的,对应的是这个: ![[Pasted image 20240306155046.png]] ![[Pasted image 20240306155118.png]] 放进对象池的逻辑: ![[Pasted image 20240306155301.png]] 然后,获取对象的相关逻辑: 如果没有设置父物体,就放到当前默认场景 ![[Pasted image 20240306155419.png]] ![[Pasted image 20240306155547.png]] 回到对象池管理器,游戏对象字典,和普通对象字典,也是分开管理即可 ![[Pasted image 20240306155751.png]]