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); }
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 } }