@senspark/ee
Version:
utility library for cocos creator
27 lines (22 loc) • 782 B
text/typescript
import { ObserverManager } from './ObserverManager';
type Observer = (delta: number) => void;
export class UpdateManager extends ObserverManager<Observer> {
private static sharedInstance?: UpdateManager;
public static getInstance(): UpdateManager {
return this.sharedInstance || (this.sharedInstance = new this());
}
/** Editor only. */
private timer?: NodeJS.Timer;
private constructor() {
super();
if (CC_EDITOR) {
let last = Date.now();
this.timer = setInterval(() => {
const now = Date.now();
const delta = now - last;
last = now;
this.dispatch(observer => observer(delta / 1000 /* seconds */));
}, 1 / 24);
}
}
}