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