pinball/assets/_Game/Scripts/Singleton/index.ts

21 lines
582 B
TypeScript
Raw Normal View History

2024-03-28 20:35:44 -07:00
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;
}