设计模式复习_第二章.md 3.4 KB

开始导入美术资源素材

![[Pasted image 20230527131342.png]]

到这两个子文件夹,其中包含的,就是敌人和士兵的美术资源预制体

![[Pasted image 20230527131436.png]]

选中其中一个,把缺失的脚本移除 其他几个同理(不要忽略了Soldier战士文件夹)

![[Pasted image 20230527131542.png]]

先勾选自动保存,移除结束再取消勾选

![[Pasted image 20230527131646.png]]

先整场景切换的相关逻辑 新建一个文件夹

![[Pasted image 20230527131859.png]]

基类

![[Pasted image 20230527131947.png]]

继续Ctrl+N 创建新场景,Ctrl+S 保存 一共三个场景,用来切换

![[Pasted image 20230527132222.png]]

加到这里

![[Pasted image 20230527132319.png]]

注意序号

![[Pasted image 20230527132413.png]]

继续整一个场景控制器

![[Pasted image 20230527132452.png]]

基类这些东西,都不要有命名空间限制

![[Pasted image 20230527132603.png]]

场景状态控制器,声明场景状态变量,异步场景加载,布尔判断场景是否在跑

![[Pasted image 20230527132632.png]]

回到场景状态类,先声明场景名字,场景状态控制器

![[Pasted image 20230527132817.png]]

然后,是场景名字获取器

![[Pasted image 20230527132919.png]]

三个函数状态,分别是开始,结束,更新

![[Pasted image 20230527133015.png]]

回到场景控制器,引用命名空间,其中有场景管理器

![[Pasted image 20230527133212.png]]

设置场景状态函数 如果当前场景状态不为空,就调用结束函数,让上一个场景,清理 然后改一下场景状态,如果是要加载场景,就异步加载场景,判断是否开始的布尔,设置为false 否则,就可以开始具体的场景逻辑了

![[Pasted image 20230527133312.png]]

更新函数,如果场景的异步加载不为空,同时isDone这个标识还没加载完成,直接return就好

再通过是否开始的布尔和上述俩条件,判断场景是否加载完成→开始场景的具体业务逻辑

还有更新函数

![[Pasted image 20230527133554.png]]

然后,新建三个类,分别代表三种场景状态

![[Pasted image 20230528000243.png]]

打开第一个场景,新建一个图片 命名

![[Pasted image 20230528000355.png]]

按住alt,设置,占满全屏

![[Pasted image 20230528000433.png]]

继续

![[Pasted image 20230528000520.png]]

因为几个场景的名字都是固定好的 所以子类不需要传参场景名字,写死就好

![[Pasted image 20230528000824.png]]

![[Pasted image 20230528000900.png]]

![[Pasted image 20230528000915.png]]

注意命名空间 声明图片image,滑动的浮点速度 等待时间

重写父类的开始业务逻辑,先找到Logo这个图片,然后颜色设置为黑

![[Pasted image 20230528001010.png]]

更新函数里,颜色随着时间乘以速度,渐变 然后还有一个定时器,定时到达小于等于0的时候,就传参,然后切换到下一个场景

![[Pasted image 20230528001121.png]]

在初始场景挂载的GameLoop脚本 前面定义了,是不会销毁的 开始写开始函数:实例化一个场景状态控制器,然后设置第一个场景状态,是开始场景

更新函数也是调用控制器的更新逻辑就好

![[Pasted image 20230528001352.png]]

运行游戏,可以看到,变色正常,切换也是正常的

![[Pasted image 20230528001533.png]]