看标题可能大家没太明白我的需求,我举个例子:
例如现在有一个首页页面的预制件:panel_main
和一个对应的脚本组件:MainPanel.ts
常用做单例的做法就是:
private static _ins: MainPanel = null;
public static get Ins() {
return this._ins;
}
onLoad() {
MainPanel._ins = this;
}
但是这样会有一个问题的,因为必须要onLoad后才能得到单例实力,所以必须要通过其他方式先加载进场景,总之首次调用MainPanel .Ins的时候是得不到实例的。
所以我就想做个Panel的基类Panel.ts继承cc.Component.
Panel实现open()方法,MainPane继承Panel
然后在项目的任意代码任意时刻都能直接通过MainPanel.Ins.open()来弹出页面,但是这样也还是解决不了首次需要加载预制件有回调的问题,首次无法得到MainPanel.Ins。
求大佬指点有没有好的方案,让我首次也直接能MainPanel.Ins.open()打开页面的比较好的实现方案。关键是首次需要加载panel_main预制件并且创建节点。