191 lines
6.0 KiB
C#
191 lines
6.0 KiB
C#
// using System.Collections;
|
|
// using UnityEngine;
|
|
// using UnityEngine.AddressableAssets;
|
|
// using UnityEngine.InputSystem;
|
|
// using UnityEngine.Serialization;
|
|
//
|
|
// namespace DDD
|
|
// {
|
|
// public class RestaurantPlayer : MonoBehaviour
|
|
// {
|
|
// #region Variables
|
|
//
|
|
// private RestaurantPlayerDataSo _playerData;
|
|
// private RestaurantPlayerView _playerView;
|
|
//
|
|
// private InputAction _moveAction;
|
|
// private InputAction _dashAction;
|
|
// private Coroutine _dashInstance;
|
|
//
|
|
// private Vector3 _inputDirection;
|
|
// private Vector3 _currentDirection = Vector3.back;
|
|
//
|
|
// public bool IsMoving;
|
|
// public bool IsDashing;
|
|
// public bool IsDashCoolDownActive;
|
|
//
|
|
// private float _finalSpeed;
|
|
//
|
|
// private PlayerStateMachine _stateMachine;
|
|
//
|
|
// #endregion
|
|
//
|
|
// // Unity events
|
|
//
|
|
// #region Unity events
|
|
//
|
|
// private void Awake()
|
|
// {
|
|
// _playerData = Addressables.LoadAssetAsync<RestaurantPlayerDataSo>("RestaurantPlayerDataSo").WaitForCompletion();
|
|
// _playerView = GetComponent<RestaurantPlayerView>();
|
|
// }
|
|
//
|
|
// private void Start()
|
|
// {
|
|
// _moveAction = InputManager.Instance.GetAction(InputActionMaps.Restaurant, nameof(RestaurantActions.Move));
|
|
// _dashAction = InputManager.Instance.GetAction(InputActionMaps.Restaurant, nameof(RestaurantActions.Dash));
|
|
//
|
|
// _moveAction.performed += OnMove;
|
|
// _moveAction.canceled += OnMove;
|
|
// _dashAction.performed += OnDash;
|
|
//
|
|
// _stateMachine = new PlayerStateMachine();
|
|
// ChangeState(new IdleState(this, _playerView));
|
|
// }
|
|
//
|
|
// //public CellManager cellManager;
|
|
// private void Update()
|
|
// {
|
|
// _stateMachine.Update();
|
|
//
|
|
// FlipVisualLook();
|
|
//
|
|
// //UpdateCell
|
|
// //cellManager.SetupCell(transform.position);
|
|
// }
|
|
//
|
|
// private void FixedUpdate()
|
|
// {
|
|
// if (!CanMove()) return;
|
|
//
|
|
// Move();
|
|
// }
|
|
//
|
|
// private void OnDestroy()
|
|
// {
|
|
// _moveAction.performed -= OnMove;
|
|
// _moveAction.canceled -= OnMove;
|
|
// _dashAction.performed -= OnDash;
|
|
// }
|
|
//
|
|
// #endregion
|
|
//
|
|
// // Methods
|
|
// #region Methods
|
|
//
|
|
// public void SetCurrentDirection(Vector3 normalDirection)
|
|
// {
|
|
// if (normalDirection == Vector3.zero) return;
|
|
//
|
|
// _currentDirection = normalDirection;
|
|
// }
|
|
//
|
|
// private void FlipVisualLook()
|
|
// {
|
|
// Vector3 localScale = _playerView.GetLocalScale();
|
|
// localScale.x = _currentDirection.x switch
|
|
// {
|
|
// > 0.01f => -Mathf.Abs(localScale.x),
|
|
// < -0.01f => Mathf.Abs(localScale.x),
|
|
// _ => localScale.x
|
|
// };
|
|
// _playerView.SetLocalScale(localScale);
|
|
// }
|
|
//
|
|
// public void OnMove(InputAction.CallbackContext context)
|
|
// {
|
|
// var movementInput = _moveAction.ReadValue<Vector2>();
|
|
// _inputDirection = new Vector3(movementInput.x, 0, movementInput.y).normalized;
|
|
// }
|
|
//
|
|
// public bool CanMove()
|
|
// {
|
|
// return _playerData.IsMoveEnabled && !IsDashing;
|
|
// }
|
|
//
|
|
// public void Move()
|
|
// {
|
|
// SetCurrentDirection(_inputDirection);
|
|
// IsMoving = _inputDirection != Vector3.zero;
|
|
//
|
|
// var finalVelocity = _inputDirection * _playerData.MoveSpeed;
|
|
// _playerView.SetVelocity(finalVelocity);
|
|
// }
|
|
//
|
|
// public void OnDash(InputAction.CallbackContext context)
|
|
// {
|
|
// if (!CanDash()) return;
|
|
//
|
|
// Dash();
|
|
// }
|
|
//
|
|
// public bool CanDash()
|
|
// {
|
|
// return _playerData.IsDashEnabled && !IsDashing && !IsDashCoolDownActive;
|
|
// }
|
|
//
|
|
// public void Dash()
|
|
// {
|
|
// Utils.StartUniqueCoroutine(this, ref _dashInstance, DashCoroutine());
|
|
// }
|
|
//
|
|
// private IEnumerator DashCoroutine()
|
|
// {
|
|
// IsDashing = true;
|
|
// IsDashCoolDownActive = true;
|
|
// _playerView.PlayDashParticle();
|
|
//
|
|
// AudioManager.Instance.PlaySfx(_playerData.DashSfxName);
|
|
//
|
|
// var dashDirection = _inputDirection;
|
|
// if (dashDirection == Vector3.zero)
|
|
// {
|
|
// dashDirection = _currentDirection;
|
|
// }
|
|
//
|
|
// var elapsedTime = 0f;
|
|
// while (elapsedTime <= _playerData.DashTime)
|
|
// {
|
|
// var finalVelocity = dashDirection * _playerData.DashSpeed;
|
|
// _playerView.SetVelocity(finalVelocity);
|
|
//
|
|
// elapsedTime += Time.fixedDeltaTime;
|
|
// yield return new WaitForFixedUpdate();
|
|
// }
|
|
//
|
|
// EndDash(_playerData.DashCooldown);
|
|
// }
|
|
//
|
|
// public void EndDash(float dashCooldown = float.PositiveInfinity)
|
|
// {
|
|
// Utils.EndUniqueCoroutine(this, ref _dashInstance);
|
|
// _playerView.SetVelocity(Vector3.zero);
|
|
// IsDashing = false;
|
|
//
|
|
// if (float.IsPositiveInfinity(dashCooldown))
|
|
// {
|
|
// dashCooldown = _playerData.DashCooldown;
|
|
// }
|
|
//
|
|
// // TODO : ui 연동
|
|
// StartCoroutine(Utils.CoolDownCoroutine(dashCooldown, () => IsDashCoolDownActive = false));
|
|
// }
|
|
//
|
|
// public void ChangeState(IStateMachine stateMachine)
|
|
// {
|
|
// _stateMachine.ChangeState(stateMachine);
|
|
// }
|
|
//
|
|
// #endregion
|
|
// }
|
|
// } |