obsidian/笔记文件/2.笔记/第三人称角色控制_第四章.md
2025-03-26 00:02:56 +08:00

2.4 KiB
Raw Permalink Blame History

运行游戏的时候可以看到是有两个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