public override void onMessage(AIMoveController obj, StateMsg <AIMoveController> msg) { AIMsg type = (AIMsg)msg.type; switch (type) { case AIMsg.reFindPath: case AIMsg.moveTimeIsOver: obj.getSM().changeState(AIFindingPathState.Instance()); break; case AIMsg.catchPlayer: obj.getSM().changeState(AICatchPlayerState.Instance()); break; case AIMsg.catchByTrap: obj.getSM().changeState(AICatchByTrapState.Instance()); break; case AIMsg.waitForSomebody: AIMoveController ai = (AIMoveController)msg.sender; obj.setWaitThisAI(ai); obj.getSM().changeState(AIWaitState.Instance()); break; } }
public static AIFindingPathState Instance() { if (instance == null) { instance = new AIFindingPathState(); } return(instance); }
public override void onMessage(AIMoveController obj, StateMsg <AIMoveController> msg) { AIMsg type = (AIMsg)msg.type; switch (type) { case AIMsg.moveTimeIsOver: obj.getSM().changeState(AIFindingPathState.Instance()); break; } }
public override void onMessage(AIMoveController obj, StateMsg <AIMoveController> msg) { AIMsg type = (AIMsg)msg.type; switch (type) { case AIMsg.reFindPath: obj.movable.getSM().handleMessage(new StateMsg <Movable>((int)MovableMsg.breakKinematic, null)); obj.getSM().changeState(AIFindingPathState.Instance()); break; case AIMsg.catchPlayer: obj.getSM().changeState(AICatchPlayerState.Instance()); break; } }
// Use this for initialization void Awake() { sm = new StateMachine <AIMoveController>(this, AIFindingPathState.Instance()); footMask = LayerMask.GetMask("FootCanTouch", "aiFootCanTouch", "AI"); AIMask = LayerMask.GetMask("AI"); }