예제 #1
0
 private void Start()
 {
     playerIdle      = GetComponent <PlayerIdle>();
     playerWalking   = GetComponent <PlayerWalking>();
     playerCrouching = GetComponent <PlayerCrouching>();
     playerJumping   = GetComponent <PlayerJumping>();
 }
예제 #2
0
    public virtual void FsmInit()
    {
        fsmManager = new FsmManager((int)PlayerAnimationEnum.Max);

        PlayerIdle playerIdle = new PlayerIdle(anim, this);

        PlayerRun playerRun = new PlayerRun(anim, this);

        PlayerAttack1 playerAttack1 = new PlayerAttack1(anim, this);

        PlayerAttack2 playerAttack2 = new PlayerAttack2(anim, this);

        PlayerAttack3 playerAttack3 = new PlayerAttack3(anim, this);


        fsmManager.AddState(playerIdle);

        fsmManager.AddState(playerRun);

        fsmManager.AddState(playerAttack1);

        fsmManager.AddState(playerAttack2);

        fsmManager.AddState(playerAttack3);

        fsmManager.ChangeState((int)PlayerAnimationEnum.Idle);
    }
예제 #3
0
 override protected void InitState()
 {
     base.InitState();
     {
         //State state = new PathFindingIdle();
         State state = new PlayerIdle();
         state.Init(this);
         _stateMap[eStateType.IDLE] = state;
     }
     {
         State state = new PlayerMove();
         state.Init(this);
         _stateMap[eStateType.MOVE] = state;
     }
     {
         State state = new PlayerSelect();
         state.Init(this);
         _stateMap[eStateType.SELECT] = state;
     }
     {
         State state = new PlayerAttack();
         state.Init(this);
         _stateMap[eStateType.ATTACK] = state;
     }
     _state = _stateMap[eStateType.IDLE];
     _state.Start();
 }
예제 #4
0
    // Use this for initialization
    void Start()
    {
        controlMove = transform.GetComponent <CharacterController>();



        animator = transform.GetComponentInChildren <Animator>();

        animManager = new FSMManager((int)AnimalEnum.MaxValue);

        PlayerIdle tmpIdle = new PlayerIdle(animator, new AnimalStateBack(AnimalStateChange));

        animManager.AddState(tmpIdle);

        PlayerRun tmpRun = new PlayerRun(animator, new AnimalStateBack(AnimalStateChange));

        animManager.AddState(tmpRun);

        PlayerAttact tmpAttact = new PlayerAttact(animator, new AnimalStateBack(AnimalStateChange));

        animManager.AddState(tmpAttact);



        PlayerBigAttact bigAttact = new PlayerBigAttact(animator, new AnimalStateBack(AnimalStateChange));

        animManager.AddState(bigAttact);


        transform.localEulerAngles = new Vector3(0, 90, 0);
    }
예제 #5
0
        /// <summary>
        /// 加载玩家动作
        /// </summary>
        public static SpriteAnimation LoadPlayerIdle(PlayerIdle idle, TexturePackerAtlas atlas)
        {
            switch (idle)
            {
            case PlayerIdle.Stand:
                return(new SpriteAnimation(LoadTextureList(atlas, 0, 3)));

            default:
                return(null);
            }
        }
예제 #6
0
    public void Start()
    {
        #region GetComponents
        player       = GetComponent <Player>();
        playerMove   = GetComponent <PlayerMove>();
        playerRotate = GetComponent <PlayerRotate>();
        playerEat    = GetComponent <PlayerEat>();
        playerPlay   = GetComponent <PlayerPlay>();
        playerIdle   = GetComponent <PlayerIdle>();
        tweens       = GetComponent <Tweens>();
        #endregion

        //player.spawnedPlayer.gameObject.transform.localScale = new Vector3(Random.Range(0, 10), Random.Range(0, 10), Random.Range(0, 10));
    }
예제 #7
0
 private void Start()
 {
     playerRigidbody = GetComponent <Rigidbody2D>();
     animator        = GetComponentInChildren <Animator>();
     stateMachine    = gameObject.AddComponent(typeof(StateMachine)) as StateMachine;
     idleState       = new PlayerIdle(this, stateMachine);
     hurtState       = new PlayerHurt(this, stateMachine);
     deadState       = new PlayerDead(this, stateMachine);
     bounceVelocity  = Vector3.zero;
     bounceTimer     = maxBounceTime;
     hurtTimer       = maxHurtTime;
     stateMachine.SetState(idleState);
     mainCamera = Camera.main;
     transform  = gameObject.transform;
 }
예제 #8
0
    // Use this for initialization
    void Start()
    {
        fm = new FSMManager((int)AnimationEnum.Max);
        Animator            animator            = GetComponent <Animator>();
        CharacterController characterController = GetComponent <CharacterController>();;
        PlayerIdle          tmpIdle             = new PlayerIdle(animator);

        fm.AddState(tmpIdle);
        PlayerRun tmpRun = new PlayerRun(animator, characterController);

        fm.AddState(tmpRun);
        PlayerAttack tmpAttack = new PlayerAttack(animator, this);

        fm.AddState(tmpAttack);
    }
예제 #9
0
    /// <summary>
    /// Setup the state machine.
    /// </summary>
    protected override void MakeFSM()
    {
        base.MakeFSM();

        PlayerWalk walk = new PlayerWalk(StateID.Walk, this);
        walk.AddTransition(Transition.DestinationReached, StateID.Idle);
        walk.AddTransition(Transition.FoundPlayer, StateID.Finished);

        PlayerIdle idle = new PlayerIdle(StateID.Idle, this);
        idle.AddTransition(Transition.WalkToDestination, StateID.Walk);
        idle.AddTransition(Transition.FoundPlayer, StateID.Finished);

        PlayerFinished finished = new PlayerFinished(StateID.Finished, this.gameObject);

        fsm.AddState(walk);
        fsm.AddState(idle);
        fsm.AddState(finished);
    }
예제 #10
0
    /// <summary>
    /// Initializes all the states in the network.
    /// </summary>
    private void CreateNetwork()
    {
        dead     = new PlayerDead(this);
        idle     = new PlayerIdle(this);
        walking  = new PlayerWalking(this);
        jumping  = new PlayerJumping(jumpBufferTime, 0.1f, this);
        rising   = new PlayerRising(this);
        falling  = new PlayerFalling(this, 1f);
        flipping = new PlayerFlipping(flipTime, flipOffset, this);

        idle.AddTransition(dead);
        idle.AddTransition(walking);
        idle.AddTransition(rising);
        idle.AddTransition(falling);
        idle.AddTransition(jumping);
        idle.AddTransition(flipping);

        walking.AddTransition(dead);
        walking.AddTransition(rising);
        walking.AddTransition(falling);
        walking.AddTransition(idle);
        walking.AddTransition(jumping);
        walking.AddTransition(flipping);

        jumping.AddTransition(dead);
        jumping.AddTransition(idle);
        jumping.AddTransition(rising);
        jumping.AddTransition(falling);

        rising.AddTransition(dead);
        rising.AddTransition(idle);
        rising.AddTransition(falling);
        rising.AddTransition(flipping);

        falling.AddTransition(dead);
        falling.AddTransition(idle);
        falling.AddTransition(rising);
        falling.AddTransition(flipping);

        flipping.AddTransition(walking);
        flipping.AddTransition(falling);

        activeState = idle;
    }
예제 #11
0
파일: Player.cs 프로젝트: wuguanyang/FSM
    private void Awake()
    {
        fsm = new FSMSystem <PlayerST, PlayerSN> ();

        var idle = new PlayerIdle(PlayerSN.Idle);

        idle.AddTransition(PlayerST.InputA, PlayerSN.Run);

        var run = new PlayerRun(PlayerSN.Run);

        run.AddTransition(PlayerST.InputB, PlayerSN.Idle);

        fsm.AddState(idle);
        fsm.AddState(run);

        fsm.SetCurrentState(PlayerSN.Idle);

        Debug.Log(fsm.states.Count);
    }
예제 #12
0
    public override void FsmInit()
    {
        fsmManager = new FsmManager((int)LongRangeEnum.Max);

        PlayerIdle playerIdle = new PlayerIdle(anim, this);

        PlayerRun playerRun = new PlayerRun(anim, this);

        LongRangeAttack longRangeAttack = new LongRangeAttack(anim, this);


        fsmManager.AddState(playerIdle);

        fsmManager.AddState(playerRun);

        fsmManager.AddState(longRangeAttack);

        fsmManager.ChangeState((int)LongRangeEnum.Idle);
    }
예제 #13
0
    private void Start()
    {
        playerFSM = new FSM();

        var idle    = new PlayerIdle(E_FSM_State_Type.PlayerIdle, this);
        var victory = new PlayerVictory(E_FSM_State_Type.PlayerVictory, this);
        var jump    = new PlayerJump(E_FSM_State_Type.PlayerJump, this);
        var look    = new PlayerLook(E_FSM_State_Type.PlayerLook, this);
        var defeat  = new PlayerDefeat(E_FSM_State_Type.PlayerDefeat, this);
        var Dead    = new PlayerDead(E_FSM_State_Type.PlayerDead, this);

        playerFSM.RegistState(idle);
        playerFSM.RegistState(victory);
        playerFSM.RegistState(jump);
        playerFSM.RegistState(look);
        playerFSM.RegistState(defeat);
        playerFSM.RegistState(Dead);

        playerFSM.Go(idle);

        FW.MonoMgr.Instance.AddUpdateListener(playerControl.Updates);
    }
예제 #14
0
    // Start is called before the first frame update
    private void Start()
    {
        defaultState = new PlayerIdle(this);
        animator     = GetComponent <Animator>();
        // New line
        levelSystem = new LevelSystem();
        levelWindow = GameObject.Find("GameplayCanvas/LevelWindow").GetComponent <LevelWindow>();
        levelWindow.SetLevelSystem(levelSystem);

        if (myState == null)
        {
            myState = defaultState;
            myState.Enter();
        }
        rb = GetComponent <Rigidbody>();
        dodgeAbility.dodgeDuration = -1f;
        MAX_STAMANA = data.remainingStamana;

        healthbar       = GameObject.Find("GameplayCanvas/HealthBar_BG").GetComponent <HealthbarController>();
        stamanaMeter    = GameObject.Find("GameplayCanvas/UIDiamonds/StamanaBar/StamanaBarForeground").GetComponent <Image>();
        skillTreeWindow = GameObject.Find("GameplayCanvas").GetComponent <SkillTreeWindow>();
    }
예제 #15
0
 protected new void Awake()
 {
     defaultState = new PlayerIdle();
     base.Awake();
 }