From c91717945ccc02cdfc87d2568734d6fa9680adb7 Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Thu, 14 Dec 2023 22:34:21 +0000 Subject: [PATCH] Changed rotor animation handling --- Assets/Scripts/PlayerController.cs | 79 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 76 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs index dea097f..c193afd 100644 --- a/Assets/Scripts/PlayerController.cs +++ b/Assets/Scripts/PlayerController.cs @@ -1,3 +1,4 @@ +using System; using System.ComponentModel.Design; using UnityEngine; using UnityEngine.InputSystem; @@ -9,13 +10,56 @@ public float maxFallSpeed = -20f; Vector2 moveInput; - public bool IsMoving { get; private set; } - Rigidbody2D rb; + Animator animator; + Animator animator_rotor; + public GameObject rotorGO; + + [SerializeField] + private bool _isMoving; + public bool IsMoving + { + get { return _isMoving; } + private set + { + _isMoving = value; + animator.SetBool(AnimationStrings.Player.IsMoving, value); + } + } + + [SerializeField] + private bool _isFlying; + public bool IsFlying + { + get { return _isFlying; } + private set + { + _isFlying = value; + animator.SetBool(AnimationStrings.Player.IsFlying, value); + animator_rotor.SetBool(AnimationStrings.Player.IsFlying, value); + } + } + + private bool _isFacingRight = true; + + public bool IsFacingRight + { + get { return _isFacingRight; } + set + { + if (_isFacingRight != value) + { + transform.localScale *= new Vector2(-1, 1); + } + _isFacingRight = value; + } + } private void Awake() { rb = GetComponent<Rigidbody2D>(); + animator = GetComponent<Animator>(); + animator_rotor = rotorGO.GetComponent<Animator>(); } // Start is called before the first frame update @@ -64,7 +108,36 @@ { moveInput = context.ReadValue<Vector2>(); - IsMoving = moveInput != Vector2.zero; + IsMoving = moveInput.x != 0; + + IsFlying = (moveInput.y != 0); + + SetFacingDirection(moveInput); } + + private void SetFacingDirection(Vector2 moveInput) + { + if (moveInput.x > 0 && !IsFacingRight) + { + IsFacingRight = true; + } + else if (moveInput.x < 0 && IsFacingRight) + { + IsFacingRight = false; + } + } + + //public void OnRun(InputAction.CallbackContext context) + //{ + // if (context.started) // Button pressed + // { + // _isRunning = true; + // } + // else if (context.canceled) // Button released + // { + // _isRunning = false; + // } + + //} } -- Gitblit v1.9.3