需要注意的是,前面使用到的,命令类型,一共是五种,在字符常量类中,是有相关定义的;

其中,音乐节奏相关的,节奏点处理文件,都放在这个文件夹下,直接复制过去就好;

可以看到,训练关是有挂载了,两个Track的,分别是攻击Track和文本提示Track;

点开之后,就可以发现,挂载在上面的两个track是可以切换查看,对应的打点;

这个软件存在bug,有时会很卡顿; 这时添加一个tempo,就可以缓解卡顿了; 在处理完成之后,再点击选择delete,就可以删除,为了缓解卡顿创建处理的tempo了;

而第一关,就只有一个track,就是攻击;

这些track,都是跟这些定义,可以对应上的;

回到关卡类中,重写第一关的,退出关卡函数; 可以看到,也是有报错提示; 还是老问题;

去父类中,改一下就好;

然后,在第一关中,重写一下,初始化关卡的函数;

以上,就是第一关的具体业务逻辑; 也是游戏的核心玩法逻辑;

之后要处理的话,就是界面相关了; 最开始使用到的,是一个不透明的遮罩; 它上面没有挂载什么脚本,所以直接复制过去就好;

然后,就是这个,开始界面;

复制过去; 会提示缺少脚本文件;

创建一个新的文件夹,命名为UI即可; 在UI文件夹下,创建对应的界面逻辑脚本;

完善一下,界面相关的业务逻辑;

挂到脚本上;

控制音乐播放的,也有一个实体; 直接复制过去就好;

调整一下分辨率;

这时,运行程序,可以看到,界面缺少了两行文字(应该是字体没有导入的原因,用默认字体也可解决) 而且角色没有动(估计是状态机没挂上去的原因)

问题不大,解决一下就好;

首先,把缺失的字体文件,用默认的字体替换即可;

而动画没有动的原因,也找到了,是因为UI相关的动画和状态机,没有复制过去; 直接复制过去就好;

这时再重新运行游戏,就可以发现,UI里面的动画和文字,也都正常显示了;

然后,点击屏幕就会进入第一关了; 第一关会使用到,背景图片,和对话的预制体; 直接复制过去就好;

需要注意的是,对话预制体中,提示缺失脚本的,是它的子物体; 脚本是挂载在子物体上面的;

在UI目录下,新建一个对话的脚本文件;

完善一下,具体的业务逻辑;

然后挂载到,子物体上即可;

保存修改,重新运行,到第一关的时候,会出现这个空的报错;

检查一下,之前在推动游戏进程的管理类中,有一个,实例化关卡的接口,是todo的;

通过switch控制,先把第一关的,加上;

再次运行,进入第一关,可以发现,对话是没问题了,但是会连续报错很多; 继续解决一下;

这个报错,找起来就比较麻烦; 因为是在,音符对象函数里面的,Update函数;

而报错的根本原因,是因为这里的level,并没有进行初始化赋值,为null;

可以发现,继承自音符对象的,目前有三个; 所以,在这三个玩意儿里面,打断点去找问题;

最后发现,是Predator首长类,没有重写update函数,导致在继承实例化出来之后,就调用了父类的update,从而导致这个报错了;

之前之所以没有重写或者说,发现这个,是因为,这里用到的beginmove,原本是第三关,首长作为boss的时候,才会使用到的变量对象;

寻思目前第一关没用到,所以就连带它的所有函数,都没写了;

结果,就导致了update函数的异常调用;

重写一下update函数,报错就消失了;

保存修改,编译,重新运行,报错就消失了; 但可以发现,首长头顶的提示,文本为空;

老问题,字体丢失,替换成默认字体就好;

重新运行游戏,可以发现,训练关卡,和第一关,都已经是正常运行的了!