Esempio n. 1
0
        private void PrintCurrentState()
        {
            stateText.transform.parent.position = transform.position + new Vector3(0, 4.25f, 0);
            stateText.text = playerState.ToString() + "\n" + playerLocation.ToString() + "\n" + "AG : " + almostGrounded;

            Debug.DrawLine(transform.position, transform.position - new Vector3(0, groundedCheckLength, 0), Color.red);
            Debug.DrawLine(transform.position - new Vector3(0.05f, 0, 0), transform.position - new Vector3(0.05f, almostGroundedCheckLength, 0), Color.blue);

            Debug.DrawLine(transform.position - (isRotated ? -1 : 1) * new Vector3(secondaryGroundedCheckOffset, 0, 0), transform.position - new Vector3((isRotated ? -1 : 1) * secondaryGroundedCheckOffset, groundedCheckLength, 0), Color.red);
            Debug.DrawLine(transform.position - (isRotated ? -1 : 1) * new Vector3(secondaryGroundedCheckOffset - 0.05f, 0, 0), transform.position - new Vector3((isRotated ? -1 : 1) * (secondaryGroundedCheckOffset - 0.05f), almostGroundedCheckLength, 0), Color.blue);
        }
Esempio n. 2
0
    public static string ToTrigger(this PlayerAnimationState state)
    {
        switch (state)
        {
        case PlayerAnimationState.IDLE:
            return("idle");

        case PlayerAnimationState.WALKING:
            return("walk");

        case PlayerAnimationState.JUMPING:
            return("jump");

        case PlayerAnimationState.DASHING:
            return("dash");

        default:
            throw new ArgumentException(
                      $"Unhandled state: {state.ToString()}"
                      );
        }
    }
        protected override void OnUpdate()
        {
            List <EntryPlayerAnim> listAnim = GameManager.entitiesPlayerAnim;

            for (int i = 0; i < parentData.Length; i++)
            {
                Parent parent = parentData.Parent[i];
                Player player = parentData.Player[i];

                int             parentIndex     = parent.AnimIndex;
                EntryPlayerAnim entryPlayerAnim = listAnim[parentIndex];

                int endAnimToggle        = entryPlayerAnim.EndAnimationToggle;
                int currentEndAnimToggle = player.EndAnimationToggle;

                if (endAnimToggle != currentEndAnimToggle)
                {
                    player.EndAnimationToggle = endAnimToggle;
                    parentData.Player[i]      = player;
                }
            }

            for (int j = 0; j < childData.Length; j++)
            {
                ChildComponent          child = childData.Child[j];
                PlayerAnimatorComponent anim  = childData.Animator[j];

                int             childIndex      = child.AnimIndex;
                EntryPlayerAnim entryPlayerAnim = listAnim[childIndex];

                float3 faceDirValue        = entryPlayerAnim.FaceDirValue;
                PlayerAnimationState state = entryPlayerAnim.State;

                #region DIRECTION
                int dirIndex        = entryPlayerAnim.DirIndex;
                int currentDirIndex = anim.currentDirIndex;

                if (dirIndex != currentDirIndex)
                {
                    anim.animator.SetFloat(Constants.AnimatorParameter.Float.FACE_X, faceDirValue.x);
                    anim.animator.SetFloat(Constants.AnimatorParameter.Float.FACE_Y, faceDirValue.z);

                    anim.currentDirIndex     = dirIndex;
                    anim.currentFaceDirValue = faceDirValue;
                }
                #endregion


                #region PLAY & STOP ANIMATION
                // PlayerAnimationState currentState = anim.currentState;
                int playerStartAnimToggle = entryPlayerAnim.StartAnimationToggle;
                // int currentPlayerStartAnimToggle = anim.currentPlayerStartAnimToggle;

                if (playerStartAnimToggle != 0)
                {
                    anim.animator.Play(state.ToString());

                    anim.currentState = state;
                    // anim.currentPlayerStartAnimToggle = playerStartAnimToggle;
                    entryPlayerAnim.StartAnimationToggle = 0;
                    listAnim[childIndex] = entryPlayerAnim;
                }
                else
                {
                    // int startAnimToggle = listAnim[childIndex].StartAnimationToggle;

                    if (anim.isCheckOnEndAnimation)
                    {
                        entryPlayerAnim.EndAnimationToggle = 1;
                        // listAnim[childIndex] = new EntryPlayerAnim(dirIndex, faceDirValue, state, startAnimToggle, 1);
                        listAnim[childIndex] = entryPlayerAnim;

                        anim.isCheckOnEndAnimation = false;
                    }

                    if (anim.isCheckOnEndSpecificAnimation)
                    {
                        entryPlayerAnim.EndAnimationToggle = 2;
                        // listAnim[childIndex] = new EntryPlayerAnim(dirIndex, faceDirValue, state, startAnimToggle, 2);
                        listAnim[childIndex] = entryPlayerAnim;

                        anim.isCheckOnEndSpecificAnimation = false;
                    }
                }
                #endregion
            }
        }