节奏天国_第一章
这次的音游,是2d的,所以新建一个2d的unity工程就可以了;
首先需要导入三个包文件;
先拖拽导入这个;
然后是导入游戏的资源文件;
再之后,就是导入音游插件了;
如果提示升级,让它升级就完事了;
导入之后,有可能会出现报错,是因为插件里面的demo,是用了旧版本的一些api接口,然后在新版本的unity里面,不支持了;
反正旧版本的插件demo,也是不需要的,直接删掉就好了;
删掉这个文件夹就可以了;
删掉之后,引擎会自动重新编译,等它编译完就没有报错了;
然后,首先设置一下,鼠标的光标;
期间可能会出现这个提示,直接取消就好,不用安装的;
然后,就是这里设置的;
点这里,就可以设置一下;
知道名字的情况下,是可以直接搜出来的;
然后就设置好了;
这时切换到game界面,就可以看到设置是生效的; 用截图软件无法截鼠标,所以这个没截图;
然后,就开始写代码了,首先新建一个文件夹
在代码文件夹里面,再创建三个文件夹,分别是代表,框架,游戏业务逻辑,ui界面逻辑;
先创建一个基础的脚本文件,游戏管理类;
然后,通过rider打开一下,这个脚本文件,顺便打开这个工程文件;
这个要新建脚本的话,就可以这样,直接通过rider来创建即可;
在框架目录下,直接创建剩下的几个管理类,分别是音频管理器,玩家管理器,资源管理器,节奏管理器,UI管理器;
回到游戏管理器,这个是需要继承自mono的,然后这些就是用到的命名空间;
然后,先写一个获取器,和设置器;
然后,先处理资源管理器的逻辑; 资源管理器,涉及到资源工厂,和对象池相关; 还是在Framework文件夹,先创建一个ResFactory脚本,作为资源工厂;
改一下脚本的目录结构,引用需要的命名空间,写一个统一调用的接口; 其中的两个方法,分别是用来初始化工厂,和获得资源的;
然后,资源工厂这个类,是继承自这个接口的;
先自动生成继承过来的,需要实现的函数;
然后,定义一个字典,一个func委托;
然后,那个委托,是用来返回的;
然后,就是初始化资源工厂函数的完善;
然后,就是对象池相关了; 新建一个ObjectPool脚本文件;
然后,删掉默认的命名空间,还有类相关,只调用后面使用到的,命名空间,而且定义一个接口;
然后,定义一个类,是继承自这个接口的,先实现一下,继承过来的函数;
声明一个资源工厂的私有变量,一个栈; 然后,再写一个构造函数;
然后,完善获取游戏物体对象的函数;
然后,完善回收对象,到对象池的方法;
还需要一个管理类,来统一管理,所有的物体路径,在框架文件夹里,新建;
因为都是常量,所以直接复制粘贴过来就好;
资源管理相关的其他类都准备好了,接下来就回到资源管理类中,先调用好,需要使用到的命名控件,还有定义好对应的管理类;
然后,声明定义几个资源工厂,再写一个初始化工厂的函数;
然后,最开始,就是图片工厂的初始化操作;
紧跟其后的,还有三个资源工厂的初始化,参考原工程写就好;
初始化完成之后,就要获取相应资源了,也是写上,对应的接口即可;
以上,就是资源管理相关的整合,然后就到了,对象池相关的,资源整合,先声明定义一个对象池的字典,然后再写一个,对象池字典初始化的方法;
然后,写一个,从对象池中,获取数据的方法,从预制工厂中,取得数据即可;
再写一个,回收对象的方法,也是直接调用,对象池中的回收方法即可;
调用一下游戏管理类(备用),然后写一个构造函数,其中包含上面写好的,资源管理,和对象池管理的初始化操作;
回到游戏管理类中,声明一个资源管理类的变量,再写一个初始化管理类的方法,直接new实例化一下;
然后,就开始弄事件管理器了; 事件系统的话,实际上就是由委托构成的;
先改一下,对应的目录结构,调用一下,需要用到的命名空间,再声明一个委托的字典;
先写一下注释;
加一个注册事件的方法;
然后,就是取消注册事件的方法;
然后,就是发送事件的方法;
在外部也定义一个整合,用来划分,特殊的消息结构,例如对话的游戏开始等;
用结构体,来填充一下整合;
在游戏管理类中,也声明和初始化,事件管理类的对象;
在游戏管理类中,补充一下,资源管理的整合;
填充一下整合,主要是跟获取资源相关的函数调用; 后面统一都在游戏管理类这个中介,调用就好;
再补充一个事件管理的整合;
填充一下;
顺道再加上,游戏管理类的唤醒函数,主要都是跟初始化,实例化相关的;