public void Init(float animalAnimationSpeed, float animalMoveSpeed, int idxInTeam,
                         float animalAcceleration, float rotateSpeed)
        {
            this.animalAnimationSpeed = animalAnimationSpeed;
            this.moveSpeed            = animalMoveSpeed * 0.001f;
            this.moveSpeedBak         = this.moveSpeed;
            this.animalAccelerationMS = animalAcceleration * 0.001f;
            this.rotateSpeedMS        = rotateSpeed * 0.001f;
            this.idxInTeam            = idxInTeam;
            isMoving             = false;
            isPassedRoad         = false;
            isArrivedNextRoadPos = false;
            arrivedLastPos       = false;
            isRotateback         = false;
            isRotateForward      = false;
            rotateAngle          = 0f;
            waitFrameCount       = 0;

            //var a = roadModel.animalRoadSegment[roadModel.animalRoadSegment.Count - 1];
            //var b = roadModel.crossRoadRectArea[roadModel.animalRoadSegment.Count - 1].height;
            //Debug.LogError(a + b * Vector3.forward + Vector3.forward * standardAnimalBoxSize.z);
            if (fsm == null)
            {
                fsm = new FSMCrossRoadAnimal(this);
                fsm.AddState(new StateCrossRoadAnimalIdle((int)FSMCrossRoadAnimalState.Idle, fsm));
                fsm.AddState(new StateCrossRoadAnimalCrossRoad((int)FSMCrossRoadAnimalState.CrossRoad, fsm));
                fsm.AddState(new StateCrossRoadRunToEndPoint((int)FSMCrossRoadAnimalState.RunToEndPoint, fsm));
            }
            fsm.GotoState((int)FSMCrossRoadAnimalState.Idle);
            fsm.Run();

            DebugFile.GetInstance().MarkGameObject(mainGameObject, "Animal-{0}", idxInTeam);
        }
    // Start is called before the first frame update
    void Start()
    {
        idle          = new State("Idle");
        idle.OnEnter += (IState state) => {
            Debug.Log("进入Idle状态");
        };

        move           = new State("Move");
        move.OnUpdate += (float deltaTime) => {
            transform.position += transform.forward * speed;
        };

        idle2Move          = new Transition(idle, move);
        idle2Move.OnCheck += () => {
            return(isMove);
        };
        idle.AddTransition(idle2Move);

        move2idle          = new Transition(move, idle);
        move2idle.OnCheck += () => {
            return(!isMove);
        };

        move.AddTransition(move2idle);

        fSMMachine = new FSMMachine("Root", idle);
        fSMMachine.AddState(move);
    }
Exemple #3
0
        public override void OnInitialize(IResourceLoader loader, params object[] pars)
        {
            TurnAgent agent = pars[0] as TurnAgent;

            m_TurnFSM = new FSMMachine();
            m_TurnFSM.AddState(new SLGTransitionTurn(agent));
            m_TurnFSM.AddState(new SLGPlayerTurn(agent));
            m_TurnFSM.AddState(new SLGOppositeTurn(agent));
        }
Exemple #4
0
 void Start()
 {
     machine = new FSMMachineTest();
     state1  = new FSMState1("state1", machine);
     state2  = new FSMState2("state2", machine);
     machine.AddState(state1);
     machine.AddState(state2);
     machine.GotoState("state1");
 }
 public StateVisitorGotoStartOfExitGateEntryPath(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
     extendPathList = new List <Vector3>();
     if (extendOffset == Vector3.zero)
     {
         extendOffset.x -= Config.globalConfig.getInstace().ZooPartResLen;
     }
 }
        public override void OnRecovery()
        {
            base.OnRecovery();
            this.Deactive();
            this.followPath.Release();
            followPath = null;

            fsmMachine.Release();
            this.fsmMachine = null;
        }
Exemple #7
0
        // Use this for initialization
        void Start()
        {
            fSMMachine = new FSMMachine <StateExample>("Example");
            fSMMachine.DefaultState = StateExample.LightOffOn;
            fSMMachine.AddStatus(StateExample.LightOffOn, new LightingSwitchOffState());
            fSMMachine.AddStatus(StateExample.LightColorSwitch, new LightingColorChangeState(Color.red));

            fSMMachine.Run();

            StartCoroutine(ChangeState());
        }
        public override void OnRecovery()
        {
            base.OnRecovery();
            this.Deactive();
            this.followPath.Release();
            followPath = null;

            fsmMachine.Release();
            this.fsmMachine = null;

            shuttleVisitorList.Clear();
        }
Exemple #9
0
        public void Launch()
        {
            m_ResLoader   = new ResourceLoader();
            m_UIManager   = CreateSystem <UIManager>();
            m_InputSystem = InputSystem.Instance;

            m_SceneFSM = new FSMMachine();
            m_SceneFSM.AddState(new StartScene());
            m_SceneFSM.AddState(new FightingScene());
            m_SceneFSM.SetDefaultState(SceneDefines.SCENE_START);

            GameCamera.Instance.Camera = Camera.main;
        }
        void Start()
        {
            _fsm = new FSMMachine();

            IdleState   idle      = new IdleState();
            SelectState selecting = new SelectState();
            ViewState   viewing   = new ViewState();
            UploadState uploading = new UploadState();

            _fsm.AddState(idle);
            _fsm.AddState(selecting);
            _fsm.AddState(viewing);
            _fsm.AddState(uploading);

            _fsm.initialCurrentState = idle;
        }
Exemple #11
0
        public override void OnRecovery()
        {
            base.OnRecovery();
            this.Deactive();
            this.followPath.Release();
            followPath = null;

            fsmMachine.Release();
            this.fsmMachine = null;

            animWeight.Clear();

            anim.Release();
            anim = null;

            groundParkingGroupID = Const.Invalid_Int;
            groundParkingIdx     = Const.Invalid_Int;
        }
Exemple #12
0
 public StateLoadOrgScene(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }
 public StateCrossRoadRunToEndPoint(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }
Exemple #14
0
 public StateVisitorLeaveNonLittleZoo(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }
Exemple #15
0
 public StateVisitorStayFirstPosInEntryQueue(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }
        ///// <summary>
        ///// 所有动物实体列表(按照顺序排队)
        ///// </summary>
        //public static List<EntityCrossRoadAnimal> entityCrossRoadAnimalList;

        public StateLoadAnimal(int stateName, FSMMachine fsmCtr) :
            base(stateName, fsmCtr)
        {
        }
 public StateVisitorGotoExitGateEntryQueue(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }
Exemple #18
0
 public FSMState(int code, object param, FSMMachine machine)
 {
     this.code    = code;
     this.param   = param;
     this.machine = machine;
 }
Exemple #19
0
	public FSMState(int code, object param, FSMMachine machine)
	{
		this.code = code;
		this.param = param;
		this.machine = machine;
	}
 public StateVisitorStayVisitSeat(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }
Exemple #21
0
 public StateVisitorLeaveZooEntryQueueFull(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }
Exemple #22
0
 public StateVisitorGotoGroundParking(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }
Exemple #23
0
 public StateLoadAnimalInLittleZooForGame(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }
 public StateVisitorEnterLittleZooApply(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }
Exemple #25
0
        //bool isToStateShuttleGotoCalcPath = false;

        public StateShuttleGobackDynamicPath(int stateName, FSMMachine fsmCtr) :
            base(stateName, fsmCtr)
        {
        }
Exemple #26
0
 public StateUpdate(string stateName, FSMMachine fsmCtr) : base(stateName, fsmCtr)
 {
 }
Exemple #27
0
 public StateLogin(string stateName, FSMMachine fsmCtr) : base(stateName, fsmCtr)
 {
 }
 public StateVisitorChoseLittleZoo(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }
 public StateVisitorLeaveFromZooEntry(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }
Exemple #30
0
 public FSMState1(string stateName, FSMMachine fsmCtr) : base(stateName, fsmCtr)
 {
 }
 public StateCrossRoadAnimalIdle(int stateName, FSMMachine fsmCtr) :
     base(stateName, fsmCtr)
 {
 }