一:ScriptBase.ts
脚本基类,为了便于统一管理,给每个脚本创建一个基类。
//主要用于让所有要被Game管理的脚本继承,里面只有四个生命周期函数。
const {
ccclass, property} = cc._decorator;
@ccclass
export default class ScriptBase extends cc.Component {
onInit(){
}
onLateInit(){
}
onUpdate(dt){
}
onLateUpdate(dt){
}
}
二、Configer.ts
这个基类专门用于存储Game所管理的各个脚本,定义了所有的声明周期函数,其他只要是要由Game管理的脚本都继承这个类。
- Configer继承于脚本基类scriptBase;
- 先定义一个接口(结构体)命名为Data,把名字和脚本对象绑在一起(脚本对象的类型为基类类型scriptBase);
- 默认导出ConfigMgr类(类型一般首字母大写);
- 把ConfigMgr设成单例;
- 定义数组、写一个函数addData将名字与脚本存进数组、写一个函数getData用于获取脚本;
- 处理所存储的所有脚本的生命周期函数。
import ScriptBase from './ScriptBase'
//相当于绑定,把名字跟脚本绑定,后续存储后,才好查找。
interface Data{
configName:string,
configTs:ScriptBase
}
//默认导出 ConfigMgr类
export default class ConfigMgr {
//1、单例对象
static instance:ConfigMgr = null;
//静态函数,之后可以直接通过类名调用,获取单例函数 ConfigMgr.getInstance()