节奏天国_第二章
回到界面类,确认一下,相机是否已经设置为,只渲染颜色;
然后创建一个空物体GameManager,挂上游戏管理类的脚本文件;
再创建一个画布,注意设置一下固定缩放;
设置好这些基础之后,就可以开始处理,UI管理类相关的事情了; 调用一下,常用的命名空间,然后优化一下管理类的代码结构;
游戏内是存在遮罩的,写一个初始化遮罩的函数,然后再在构造函数里面,完成游戏管理类,画布的初始化,还有调用一下,初始化遮罩函数;
因为遮罩相关,要处理的东西也比较多,所以先定义一个遮罩的整合,然后把初始化遮罩的函数,放进去;
声明几个,遮罩需要使用到的gameobject和tween,还有image图片;
在遮罩的整合之外,添加一个方法,是用来纠正位置的;
然后,在初始化函数里面调用一下,纠正位置的方法; 再使用dotween的方法,完成图片透明度的变化
然后在整合里,再创建两个方法,分别是显示遮罩和隐藏遮罩;
完成了遮罩的初始化; 然后,在外部再定义一个,加载UI的方法;
再写一个,加载面板的方法;
既然有加载面板,也就会有,回收面板; 也写一个方法来回收面板;
以上就是ui管理类的方法开发; 回到游戏管理类中,先声明一下ui管理类;
然后,在初始化函数中,实例化一下对象;
在游戏管理类中,新建一个UI管理的相关整合;
然后,填充上,加载UI,加载面板等,在UI管理类中的方法;
以上,就是ui管理类相关的方法了; 然后,开始处理,玩家管理类的方法; 先引用,需要使用到的命名空间,然后添加一下注释,优化代码结构;
玩家的操作类型,有三种,分别是攻击,跳跃,攻击+跳跃; 所以,定义一个枚举去区分;
然后,声明几个需要用到的几个变量,和构造函数;
角色一般是跟动画挂钩的,所以先弄一个其他动画的整合;
然后参考原来的,状态机相关,填充一下就好;
再设立一个其他方法的整合,然后填充一下,后面会需要使用到的方法;
以上还不是全部的“其他方法”整合,剩下的,参考原工程补全即可;
跳跃需要使用dotween来处理,也单独弄一个整合出来; 参考原工程填充一下就好;
然后,就是角色管理类的操作部分了,监听玩家输入,玩家通过鼠标的左右按键,直接可以控制玩家的一系列操作;
然后,回到构造函数,完成一系列的初始化,和调用前面定义好的基本函数;
回到游戏管理类中,先声明一个玩家管理类的对象;
然后,在初始化中,对该对象,完成初始化操作;
然后,在游戏管理类中,写一个玩家管理类的整合,然后填充一下,玩家管理类相关的操作;
以上,就是完成了,玩家管理类相关了; 然后,就到了推动游戏进程,管理游戏关卡数据,以及关卡对象,相关的管理类了;
调用一下,需要使用到的命名空间,再优化一下代码结构;
先处理一下,角色之间的对话台词; 具体的文本内容,在游戏资源里面的,这个剧本文件中;
具体文本内容:
定义一个游戏剧情的整合,然后填充一下代码内容: 主要是不同的关卡剧情,和触发顺序判断;
因为涉及到关卡的话,就是有具体的业务逻辑在其中; 所以,在Game目录下,创建两个脚本文件,分别是关卡,和关卡控制器;
先打开关卡类,调用一下,需要使用到的命名空间,再写一个关卡的接口; 然后,优化一下代码结构;
设置关卡类,为抽象类,继承自关卡接口,先让它们自动生成一下,各个需要实现的接口:初始化关卡,关卡逻辑,退出关卡;
然后,打开音轨控制者,调用一下,需要使用到的,命名空间,优化一下代码结构;
有了关卡类,也有了音轨控制器,负责生成音符,所以还需要一个,音符类,用来处理,最基础的,音符相关操作,创建一个音符的脚本文件;
调用一下,需要用到的命名控件,再优化一下代码结构,其中音符对象,是继承自mono的,因为它会在场景中使用,是需要在场景中,实例化出来的玩意儿;
声明一下,需要使用到各个变量;
在音符代码中,先写好,对应的初始化函数;
在原工程中,是有一个对应音符的预制体文件;
可以直接复制到新工程中; 完成复制后,可能会出现,以下,代码缺失的提示;
没关系,选择前面写好的,音符对象的脚本,挂上去就好了;
回到音符对象的脚本,创建两个方法,分别是,重置音符,和返回对象池的;
发现关卡相关的内容,需要处理的脚本文件,有点偏多,所以也可以,直接先处理,音频管理类;
调用一下,需要使用到的,命名空间,优化一下代码结构;
声明一下,后面需要用到的各个变量,然后在构造函数中,对他们进行初始化;
然后,写一系列,关于音效播放和停止相关的接口即可;
在游戏管理类中,新增对应的,音频管理类对象;
然后,在初始化函数中,完成该对象的实例化;
在游戏管理类中,添加音频管理的整合,然后填充一下,对应的音频管理接口即可;
在关卡类中,先把需要用到的,通用关卡变量,给写出来;
然后,新增两个方法,是跟采样相关的;
再写一个函数,是用来得到,在音乐样本中,命中窗口的宽度;
定义一个抽象方法,是用来进入关卡之前,加载当前关卡,所有相关数据的;
然后,在关卡类中,需要使用到,推动游戏进程管理类的,新的整合方法;
定义一个新的整合,然后声明几个,需要用到的变量;
再写一下,构造推动游戏进程管理类的,构造函数;
在游戏管理类中,对推动进程类,声明对象;
然后,在初始化函数中,完成实例化;
然后,在游戏管理类中,添加一个整合,是用来统一处理,游戏管理的;
回到关卡类中,完成初始化当前关卡的方法;
在关卡类中,再写一个构造函数,和增加分数的函数;
回到音符对象类中,添加一个,是否命中的函数,传参是击打的等级;
回到音符对象类,写一个方法,是用来获取,样本偏移值的;
根据样本偏移值,就可以计算得到,当前音符的命中等级了;