21 lines
582 B
TypeScript
21 lines
582 B
TypeScript
|
import { Component, Node } from 'cc';
|
||
|
|
||
|
export default function Singleton<T>(component?: string) {
|
||
|
class Singleton extends Component {
|
||
|
//singleton
|
||
|
private static _instance: T = null;
|
||
|
public static get instance(): T {
|
||
|
if (component && !Singleton._instance) {
|
||
|
Singleton._instance = new Node(component).addComponent(component) as T;
|
||
|
}
|
||
|
return Singleton._instance;
|
||
|
}
|
||
|
|
||
|
protected onLoad(): void {
|
||
|
Singleton._instance = this as unknown as T;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return Singleton;
|
||
|
}
|