import { _decorator, sp } from "cc"; import GObject from "../GObject"; import { JNFrameInfo } from "../../../../../extensions/ngame/assets/ngame/sync/frame/JNSyncFrame"; import GFSMBase from "../fsm/GFSMBase"; const { ccclass, property } = _decorator; //角色基类 export default abstract class GRoleBase extends GObject{ @property(sp.Skeleton) spine:sp.Skeleton; //状态机 fsm:GFSMBase; onLoad(){ if(!this.spine) this.spine = this.node.getComponent(sp.Skeleton); //如果没有生成则直接销毁 if(!this.spine) { this.node.removeFromParent(); return; } //创建角色状态机 this.fsm = this.fsmCreate(); } //创建一个状态机 protected abstract fsmCreate():GFSMBase; onSyncUpdate(dt: number,frame:JNFrameInfo, input?: T){ //更新状态机 this.fsm.onUpdate(dt); } }