From ec353d0fd4f15fa802fbc24b267b58d8784b1e1d Mon Sep 17 00:00:00 2001 From: "DESKTOP-VVOCIJO\\PC" Date: Fri, 15 May 2026 15:28:13 +0900 Subject: [PATCH] =?UTF-8?q?2026-05-15=20=EA=B3=B5=EA=B2=A9=EA=B3=BC=20?= =?UTF-8?q?=ED=94=BC=EA=B2=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/01_Scenes/GameScene.unity | 4 +- Assets/02_Scripts/Combat.meta | 8 + Assets/02_Scripts/Combat/AttackData.cs | 17 + Assets/02_Scripts/Combat/AttackData.cs.meta | 2 + Assets/02_Scripts/Combat/ComboNode.cs | 26 ++ Assets/02_Scripts/Combat/ComboNode.cs.meta | 2 + Assets/02_Scripts/Combat/IDamageable.cs | 4 + Assets/02_Scripts/Combat/IDamageable.cs.meta | 2 + Assets/02_Scripts/Enemy.meta | 8 + Assets/02_Scripts/Enemy/Enemy.cs | 58 +++ Assets/02_Scripts/Enemy/Enemy.cs.meta | 2 + Assets/02_Scripts/Input/GameInput.cs | 78 ++++ Assets/02_Scripts/Managers/InputManager.cs | 16 + Assets/02_Scripts/Player/PlayerController.cs | 407 +++++++++++++++++- Assets/03_Character/WhiteMan/Physics.meta | 8 + .../Player_NoFriction.physicsMaterial2D | 14 + .../Player_NoFriction.physicsMaterial2D.meta | 8 + ...ll Garden Tiles_96x96 Sprite Sheet_0.asset | 2 +- ...ll Garden Tiles_96x96 Sprite Sheet_1.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_11.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_12.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_13.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_14.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_15.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_16.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_17.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_18.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_19.asset | 2 +- ...ll Garden Tiles_96x96 Sprite Sheet_2.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_20.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_21.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_22.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_23.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_24.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_25.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_26.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_27.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_28.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_29.asset | 2 +- ...ll Garden Tiles_96x96 Sprite Sheet_3.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_30.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_31.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_32.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_36.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_37.asset | 2 +- ...l Garden Tiles_96x96 Sprite Sheet_38.asset | 2 +- ...ll Garden Tiles_96x96 Sprite Sheet_4.asset | 2 +- ...ll Garden Tiles_96x96 Sprite Sheet_5.asset | 2 +- ...ll Garden Tiles_96x96 Sprite Sheet_7.asset | 2 +- ...ll Garden Tiles_96x96 Sprite Sheet_8.asset | 2 +- ...ll Garden Tiles_96x96 Sprite Sheet_9.asset | 2 +- Assets/05_Data.meta | 8 + Assets/05_Data/Attack.meta | 8 + Assets/05_Data/Attack/Kick_A.asset | 3 + Assets/05_Data/Attack/Kick_A.asset.meta | 8 + Assets/05_Data/Attack/Kick_B.asset | 3 + Assets/05_Data/Attack/Kick_B.asset.meta | 8 + Assets/05_Data/Attack/Kick_C.asset | 3 + Assets/05_Data/Attack/Kick_C.asset.meta | 8 + Assets/05_Data/Attack/Punch_A.asset | 3 + Assets/05_Data/Attack/Punch_A.asset.meta | 8 + Assets/05_Data/Attack/Punch_B.asset | 3 + Assets/05_Data/Attack/Punch_B.asset.meta | 8 + Assets/05_Data/Attack/Punch_C.asset | 3 + Assets/05_Data/Attack/Punch_C.asset.meta | 8 + Assets/05_Data/Combo.meta | 8 + Assets/05_Data/Combo/Combo_Kick_A.asset | 3 + Assets/05_Data/Combo/Combo_Kick_A.asset.meta | 8 + Assets/05_Data/Combo/Combo_Kick_B.asset | 3 + Assets/05_Data/Combo/Combo_Kick_B.asset.meta | 8 + Assets/05_Data/Combo/Combo_Kick_C.asset | 3 + Assets/05_Data/Combo/Combo_Kick_C.asset.meta | 8 + Assets/05_Data/Combo/Combo_Punch_A.asset | 3 + Assets/05_Data/Combo/Combo_Punch_A.asset.meta | 8 + Assets/05_Data/Combo/Combo_Punch_B.asset | 3 + Assets/05_Data/Combo/Combo_Punch_B.asset.meta | 8 + Assets/05_Data/Combo/Combo_Punch_C.asset | 3 + Assets/05_Data/Combo/Combo_Punch_C.asset.meta | 8 + Assets/11_Input/GameInput.inputactions | 40 ++ .../LiberationSans SDF - Fallback.asset | 4 +- ProjectSettings/TagManager.asset | 4 +- 81 files changed, 879 insertions(+), 57 deletions(-) create mode 100644 Assets/02_Scripts/Combat.meta create mode 100644 Assets/02_Scripts/Combat/AttackData.cs create mode 100644 Assets/02_Scripts/Combat/AttackData.cs.meta create mode 100644 Assets/02_Scripts/Combat/ComboNode.cs create mode 100644 Assets/02_Scripts/Combat/ComboNode.cs.meta create mode 100644 Assets/02_Scripts/Combat/IDamageable.cs create mode 100644 Assets/02_Scripts/Combat/IDamageable.cs.meta create mode 100644 Assets/02_Scripts/Enemy.meta create mode 100644 Assets/02_Scripts/Enemy/Enemy.cs create mode 100644 Assets/02_Scripts/Enemy/Enemy.cs.meta create mode 100644 Assets/03_Character/WhiteMan/Physics.meta create mode 100644 Assets/03_Character/WhiteMan/Physics/Player_NoFriction.physicsMaterial2D create mode 100644 Assets/03_Character/WhiteMan/Physics/Player_NoFriction.physicsMaterial2D.meta create mode 100644 Assets/05_Data.meta create mode 100644 Assets/05_Data/Attack.meta create mode 100644 Assets/05_Data/Attack/Kick_A.asset create mode 100644 Assets/05_Data/Attack/Kick_A.asset.meta create mode 100644 Assets/05_Data/Attack/Kick_B.asset create mode 100644 Assets/05_Data/Attack/Kick_B.asset.meta create mode 100644 Assets/05_Data/Attack/Kick_C.asset create mode 100644 Assets/05_Data/Attack/Kick_C.asset.meta create mode 100644 Assets/05_Data/Attack/Punch_A.asset create mode 100644 Assets/05_Data/Attack/Punch_A.asset.meta create mode 100644 Assets/05_Data/Attack/Punch_B.asset create mode 100644 Assets/05_Data/Attack/Punch_B.asset.meta create mode 100644 Assets/05_Data/Attack/Punch_C.asset create mode 100644 Assets/05_Data/Attack/Punch_C.asset.meta create mode 100644 Assets/05_Data/Combo.meta create mode 100644 Assets/05_Data/Combo/Combo_Kick_A.asset create mode 100644 Assets/05_Data/Combo/Combo_Kick_A.asset.meta create mode 100644 Assets/05_Data/Combo/Combo_Kick_B.asset create mode 100644 Assets/05_Data/Combo/Combo_Kick_B.asset.meta create mode 100644 Assets/05_Data/Combo/Combo_Kick_C.asset create mode 100644 Assets/05_Data/Combo/Combo_Kick_C.asset.meta create mode 100644 Assets/05_Data/Combo/Combo_Punch_A.asset create mode 100644 Assets/05_Data/Combo/Combo_Punch_A.asset.meta create mode 100644 Assets/05_Data/Combo/Combo_Punch_B.asset create mode 100644 Assets/05_Data/Combo/Combo_Punch_B.asset.meta create mode 100644 Assets/05_Data/Combo/Combo_Punch_C.asset create mode 100644 Assets/05_Data/Combo/Combo_Punch_C.asset.meta diff --git a/Assets/01_Scenes/GameScene.unity b/Assets/01_Scenes/GameScene.unity index 6b65cca..307b1af 100644 --- a/Assets/01_Scenes/GameScene.unity +++ b/Assets/01_Scenes/GameScene.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a9f37c1469a318e3d1d54c366e5ed8842e4eac4a2432ba42f13f8d1c2505e3d8 -size 66499 +oid sha256:167544ed5081cd415d112953f10ab5d47070c5a5c25b808ad4ca030e5e155e2b +size 51559 diff --git a/Assets/02_Scripts/Combat.meta b/Assets/02_Scripts/Combat.meta new file mode 100644 index 0000000..29eeaec --- /dev/null +++ b/Assets/02_Scripts/Combat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 66c32bbc793f98d49adc0346594251e9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/02_Scripts/Combat/AttackData.cs b/Assets/02_Scripts/Combat/AttackData.cs new file mode 100644 index 0000000..bc8c7ac --- /dev/null +++ b/Assets/02_Scripts/Combat/AttackData.cs @@ -0,0 +1,17 @@ +using UnityEngine; + +[CreateAssetMenu(fileName = "AttackData", menuName = "Combat/AttackData")] +public class AttackData : ScriptableObject +{ + public string AttackName; + public string AnimationState; + public Vector2 Offset = new Vector2(0.5f, 0f); + public float Radius = 0.5f; + public int Damage = 10; + public float Cooldown = 0.3f; + + [Header("Timing")] + public float HitTiming = 0.15f; + public float HitDuration = 0f; + public float MotionDuration = 0.3f; +} diff --git a/Assets/02_Scripts/Combat/AttackData.cs.meta b/Assets/02_Scripts/Combat/AttackData.cs.meta new file mode 100644 index 0000000..c282ab0 --- /dev/null +++ b/Assets/02_Scripts/Combat/AttackData.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 526ebe3dc7ff32e4faa2cfcdc1670638 \ No newline at end of file diff --git a/Assets/02_Scripts/Combat/ComboNode.cs b/Assets/02_Scripts/Combat/ComboNode.cs new file mode 100644 index 0000000..9389268 --- /dev/null +++ b/Assets/02_Scripts/Combat/ComboNode.cs @@ -0,0 +1,26 @@ +using System; +using UnityEngine; + +public enum ComboInputType +{ + Punch, + Kick +} + +[Serializable] +public class ComboTransition +{ + public ComboInputType Trigger; + public ComboNode Next; + public float ForwardStep = 0f; + public float ForwardStepDuration = 0.1f; +} + +[CreateAssetMenu(fileName = "ComboNode", menuName = "Combat/ComboNode")] +public class ComboNode : ScriptableObject +{ + public string NodeName; + public AttackData Attack; + public float ComboWindow = 0.8f; + public ComboTransition[] Transitions; +} diff --git a/Assets/02_Scripts/Combat/ComboNode.cs.meta b/Assets/02_Scripts/Combat/ComboNode.cs.meta new file mode 100644 index 0000000..b3d39f6 --- /dev/null +++ b/Assets/02_Scripts/Combat/ComboNode.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d4d02e4d65b341140b34a24e39798ff6 \ No newline at end of file diff --git a/Assets/02_Scripts/Combat/IDamageable.cs b/Assets/02_Scripts/Combat/IDamageable.cs new file mode 100644 index 0000000..b58de0a --- /dev/null +++ b/Assets/02_Scripts/Combat/IDamageable.cs @@ -0,0 +1,4 @@ +public interface IDamageable +{ + void TakeDamage(int amount); +} diff --git a/Assets/02_Scripts/Combat/IDamageable.cs.meta b/Assets/02_Scripts/Combat/IDamageable.cs.meta new file mode 100644 index 0000000..43b235d --- /dev/null +++ b/Assets/02_Scripts/Combat/IDamageable.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 48f6e522039b1f44f8cce75191bcefec \ No newline at end of file diff --git a/Assets/02_Scripts/Enemy.meta b/Assets/02_Scripts/Enemy.meta new file mode 100644 index 0000000..8d9b4f6 --- /dev/null +++ b/Assets/02_Scripts/Enemy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 48e440de30939c14d9f50089d72d7c9e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/02_Scripts/Enemy/Enemy.cs b/Assets/02_Scripts/Enemy/Enemy.cs new file mode 100644 index 0000000..36cc079 --- /dev/null +++ b/Assets/02_Scripts/Enemy/Enemy.cs @@ -0,0 +1,58 @@ +using UnityEngine; + +[RequireComponent(typeof(Collider2D))] +public class Enemy : MonoBehaviour, IDamageable +{ + [Header("Stats")] + [SerializeField] private int _maxHealth = 30; + + [Header("Hit Feedback")] + [SerializeField] private float _hitFlashDuration = 0.1f; + [SerializeField] private Color _hitFlashColor = Color.red; + + private int _currentHealth; + private SpriteRenderer _spriteRenderer; + private Color _originalColor; + private float _flashTimer; + + private void Awake() + { + _currentHealth = _maxHealth; + _spriteRenderer = GetComponentInChildren(); + if (_spriteRenderer != null) + _originalColor = _spriteRenderer.color; + } + + private void Update() + { + if (_flashTimer > 0f) + { + _flashTimer -= Time.deltaTime; + if (_flashTimer <= 0f && _spriteRenderer != null) + _spriteRenderer.color = _originalColor; + } + } + + public void TakeDamage(int amount) + { + if (_currentHealth <= 0) return; + + _currentHealth -= amount; + Debug.Log($"{name} 피격: -{amount} (HP: {_currentHealth}/{_maxHealth})"); + + if (_spriteRenderer != null) + { + _spriteRenderer.color = _hitFlashColor; + _flashTimer = _hitFlashDuration; + } + + if (_currentHealth <= 0) + Die(); + } + + private void Die() + { + Debug.Log($"{name} 사망"); + Destroy(gameObject); + } +} diff --git a/Assets/02_Scripts/Enemy/Enemy.cs.meta b/Assets/02_Scripts/Enemy/Enemy.cs.meta new file mode 100644 index 0000000..4f66c3e --- /dev/null +++ b/Assets/02_Scripts/Enemy/Enemy.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 945e2c8fc675cb64c97b4eff6d2e8d56 \ No newline at end of file diff --git a/Assets/02_Scripts/Input/GameInput.cs b/Assets/02_Scripts/Input/GameInput.cs index 61508bf..c022346 100644 --- a/Assets/02_Scripts/Input/GameInput.cs +++ b/Assets/02_Scripts/Input/GameInput.cs @@ -109,6 +109,24 @@ public @GameInput() ""processors"": """", ""interactions"": """", ""initialStateCheck"": false + }, + { + ""name"": ""Punch"", + ""type"": ""Button"", + ""id"": ""3dcb1343-a166-469d-990e-24ccedf2d09e"", + ""expectedControlType"": """", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false + }, + { + ""name"": ""Kick"", + ""type"": ""Button"", + ""id"": ""1af50460-846d-4f2a-8030-f9712ad7df6b"", + ""expectedControlType"": """", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false } ], ""bindings"": [ @@ -177,6 +195,28 @@ public @GameInput() ""action"": ""Jump"", ""isComposite"": false, ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""9f28cd37-d35c-4f36-8af0-a0020d508486"", + ""path"": ""/z"", + ""interactions"": """", + ""processors"": """", + ""groups"": """", + ""action"": ""Punch"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""43e56be6-df9b-4845-ba12-cd109ac1ffa0"", + ""path"": ""/x"", + ""interactions"": """", + ""processors"": """", + ""groups"": """", + ""action"": ""Kick"", + ""isComposite"": false, + ""isPartOfComposite"": false } ] } @@ -187,6 +227,8 @@ public @GameInput() m_Player = asset.FindActionMap("Player", throwIfNotFound: true); m_Player_Move = m_Player.FindAction("Move", throwIfNotFound: true); m_Player_Jump = m_Player.FindAction("Jump", throwIfNotFound: true); + m_Player_Punch = m_Player.FindAction("Punch", throwIfNotFound: true); + m_Player_Kick = m_Player.FindAction("Kick", throwIfNotFound: true); } ~@GameInput() @@ -269,6 +311,8 @@ public int FindBinding(InputBinding bindingMask, out InputAction action) private List m_PlayerActionsCallbackInterfaces = new List(); private readonly InputAction m_Player_Move; private readonly InputAction m_Player_Jump; + private readonly InputAction m_Player_Punch; + private readonly InputAction m_Player_Kick; /// /// Provides access to input actions defined in input action map "Player". /// @@ -289,6 +333,14 @@ public struct PlayerActions /// public InputAction @Jump => m_Wrapper.m_Player_Jump; /// + /// Provides access to the underlying input action "Player/Punch". + /// + public InputAction @Punch => m_Wrapper.m_Player_Punch; + /// + /// Provides access to the underlying input action "Player/Kick". + /// + public InputAction @Kick => m_Wrapper.m_Player_Kick; + /// /// Provides access to the underlying input action map instance. /// public InputActionMap Get() { return m_Wrapper.m_Player; } @@ -320,6 +372,12 @@ public void AddCallbacks(IPlayerActions instance) @Jump.started += instance.OnJump; @Jump.performed += instance.OnJump; @Jump.canceled += instance.OnJump; + @Punch.started += instance.OnPunch; + @Punch.performed += instance.OnPunch; + @Punch.canceled += instance.OnPunch; + @Kick.started += instance.OnKick; + @Kick.performed += instance.OnKick; + @Kick.canceled += instance.OnKick; } /// @@ -337,6 +395,12 @@ private void UnregisterCallbacks(IPlayerActions instance) @Jump.started -= instance.OnJump; @Jump.performed -= instance.OnJump; @Jump.canceled -= instance.OnJump; + @Punch.started -= instance.OnPunch; + @Punch.performed -= instance.OnPunch; + @Punch.canceled -= instance.OnPunch; + @Kick.started -= instance.OnKick; + @Kick.performed -= instance.OnKick; + @Kick.canceled -= instance.OnKick; } /// @@ -391,5 +455,19 @@ public interface IPlayerActions /// /// void OnJump(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "Punch" is either , or . + /// + /// + /// + /// + void OnPunch(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "Kick" is either , or . + /// + /// + /// + /// + void OnKick(InputAction.CallbackContext context); } } diff --git a/Assets/02_Scripts/Managers/InputManager.cs b/Assets/02_Scripts/Managers/InputManager.cs index 7b4d316..1e3ad11 100644 --- a/Assets/02_Scripts/Managers/InputManager.cs +++ b/Assets/02_Scripts/Managers/InputManager.cs @@ -10,6 +10,8 @@ public class InputManager : MonoBehaviour, GameInput.IPlayerActions public event Action OnMove_Event; public event Action OnJump_Event; + public event Action OnPunch_Event; + public event Action OnKick_Event; private void Awake() { @@ -38,4 +40,18 @@ public void OnJump(InputAction.CallbackContext ctx) if (ctx.phase == InputActionPhase.Started) OnJump_Event?.Invoke(); } + + public void OnPunch(InputAction.CallbackContext ctx) + { + if (ctx.phase == InputActionPhase.Started) + OnPunch_Event?.Invoke(); + + } + + public void OnKick(InputAction.CallbackContext ctx) + { + if (ctx.phase == InputActionPhase.Started) + OnKick_Event?.Invoke(); + } + } diff --git a/Assets/02_Scripts/Player/PlayerController.cs b/Assets/02_Scripts/Player/PlayerController.cs index 2337210..a4b9a89 100644 --- a/Assets/02_Scripts/Player/PlayerController.cs +++ b/Assets/02_Scripts/Player/PlayerController.cs @@ -1,29 +1,76 @@ +using System.Collections.Generic; +using System.Threading; using UnityEngine; public class PlayerController : MonoBehaviour { [Header("Movement")] - [SerializeField] private float moveSpeed = 5f; + [SerializeField] private float _moveSpeed = 5f; + private float _moveInputX = 0f; [Header("Jump")] - [SerializeField] private float jumpForce = 12f; - [SerializeField] private Transform groundCheck; - [SerializeField] private float groundCheckRadius = 0.1f; - [SerializeField] private LayerMask groundLayer; + [SerializeField] private float _jumpForce = 8f; + [SerializeField] private Transform _groundCheck; + [SerializeField] private float _groundCheckRadius = 0.1f; + [SerializeField] private LayerMask _groundLayer; + private bool _isGrounded; - private Rigidbody2D rb; - private float moveInputX = 0f; - private bool isGrounded; + [Header("WallSlide")] + [SerializeField] private Transform _wallCheckLeft; + [SerializeField] private Transform _wallCheckRight; + [SerializeField] private float _wallCheckRadius = 0.1f; + [SerializeField] private float _wallSlideSpeed = 2f; + [SerializeField] private Vector2 _wallJumpForce = new Vector2(4f, 5f); + [SerializeField] private float _wallJumpInputLockDuration = 0.15f; + private bool _isTouchingLeftWall; + private bool _isTouchingRightWall; + private bool IsTouchingWall => _isTouchingLeftWall || _isTouchingRightWall; + private int _wallDirection; + private float _inputLockTimer; + + [Header("Attack")] + [SerializeField] private ComboNode _punchRootNode; + [SerializeField] private ComboNode _kickRootNode; + [SerializeField] private LayerMask _enemyLayer; + [SerializeField] private string _idleAnimationState = "Idle"; + [SerializeField] private float _bufferOpenTime = 0.1f; + [SerializeField] private float _bufferLifetime = 0.5f; + private ComboInputType? _pendingInput; + private float _pendingInputTime = -1f; + private float _attackCooldownTimer; + private ComboNode _currentNode; + private float _comboWindowTimer; + private CancellationTokenSource _attackCts; + private AttackData _lastAttackGizmoData; + private float _lastAttackGizmoTime = -1f; + [SerializeField] private float _hitGizmoFadeDuration = 0.5f; + private AttackData _lastHitData; + private Vector2 _lastHitCenter; + private float _lastHitTime = -1f; + + [Header("Debug")] + [SerializeField] private bool _showAttackDebug = true; + private float _attackStartTime = -1f; + private bool _hitFired; + + private Rigidbody2D _rb; + private Animator _anim; + private SpriteRenderer _spriteRenderer; private void Awake() { - rb = GetComponent(); + _rb = GetComponent(); + _anim = GetComponent(); + _spriteRenderer = GetComponentInChildren(); } private void Start() { InputManager.Instance.OnMove_Event += OnMoveInput; InputManager.Instance.OnJump_Event += OnJumpInput; + + InputManager.Instance.OnPunch_Event += OnPunchInput; + InputManager.Instance.OnKick_Event += OnKickInput; } private void OnDestroy() @@ -32,30 +79,356 @@ private void OnDestroy() { InputManager.Instance.OnMove_Event -= OnMoveInput; InputManager.Instance.OnJump_Event -= OnJumpInput; + InputManager.Instance.OnPunch_Event -= OnPunchInput; + InputManager.Instance.OnKick_Event -= OnKickInput; } + + _attackCts?.Cancel(); + _attackCts?.Dispose(); } private void FixedUpdate() { - isGrounded = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, groundLayer); - rb.linearVelocity = new Vector2(moveInputX * moveSpeed, rb.linearVelocity.y); + _isGrounded = Physics2D.OverlapCircle(_groundCheck.position, _groundCheckRadius, _groundLayer); + _isTouchingLeftWall = Physics2D.OverlapCircle(_wallCheckLeft.position, _wallCheckRadius, _groundLayer); + _isTouchingRightWall = Physics2D.OverlapCircle(_wallCheckRight.position, _wallCheckRadius, _groundLayer); + _wallDirection = _isTouchingRightWall ? 1 : (_isTouchingLeftWall ? -1 : 0); + + if (_attackCooldownTimer > 0f) + _attackCooldownTimer -= Time.fixedDeltaTime; + + if (_attackCooldownTimer <= 0f && _pendingInput.HasValue) + { + ComboInputType buffered = _pendingInput.Value; + bool stillValid = Time.time - _pendingInputTime <= _bufferLifetime; + _pendingInput = null; + if (stillValid) ExecuteComboInput(buffered); + } + + if (_comboWindowTimer > 0f) + { + _comboWindowTimer -= Time.fixedDeltaTime; + if (_comboWindowTimer <= 0f) + _currentNode = null; + } + + if (_inputLockTimer > 0f) + _inputLockTimer -= Time.fixedDeltaTime; + else + _rb.linearVelocity = new Vector2(_moveInputX * _moveSpeed, _rb.linearVelocity.y); + + if (IsTouchingWall && !_isGrounded && _rb.linearVelocity.y < -_wallSlideSpeed) + _rb.linearVelocity = new Vector2(_rb.linearVelocity.x, -_wallSlideSpeed); } private void OnMoveInput(Vector2 value) { - moveInputX = value.x == 0f ? 0f : Mathf.Sign(value.x); + _moveInputX = value.x == 0f ? 0f : Mathf.Sign(value.x); + + if (_moveInputX != 0f && _spriteRenderer != null) + _spriteRenderer.flipX = _moveInputX < 0f; } private void OnJumpInput() { - if (isGrounded) - rb.linearVelocity = new Vector2(rb.linearVelocity.x, jumpForce); + if (_isGrounded) + { + _rb.linearVelocity = new Vector2(_rb.linearVelocity.x, _jumpForce); + } + else if (IsTouchingWall) + { + _rb.linearVelocity = new Vector2(-_wallDirection * _wallJumpForce.x, _wallJumpForce.y); + _inputLockTimer = _wallJumpInputLockDuration; + } + } + + private void OnPunchInput() => HandleComboInput(ComboInputType.Punch); + private void OnKickInput() => HandleComboInput(ComboInputType.Kick); + + private void HandleComboInput(ComboInputType input) + { + if (_attackCooldownTimer > 0f) + { + float elapsed = Time.time - _attackStartTime; + if (_lastAttackGizmoData != null && elapsed >= _bufferOpenTime) + { + _pendingInput = input; + _pendingInputTime = Time.time; + } + return; + } + + ExecuteComboInput(input); + } + + private void ExecuteComboInput(ComboInputType input) + { + if (_comboWindowTimer > 0f && _currentNode != null) + { + foreach (var transition in _currentNode.Transitions) + { + if (transition.Trigger != input) continue; + if (transition.Next == null || transition.Next.Attack == null) continue; + + ApplyForwardStep(transition.ForwardStep, transition.ForwardStepDuration); + PerformAttack(transition.Next.Attack); + _currentNode = transition.Next; + _comboWindowTimer = transition.Next.ComboWindow; + return; + } + } + + ComboNode root = input switch + { + ComboInputType.Punch => _punchRootNode, + ComboInputType.Kick => _kickRootNode, + _ => null + }; + if (root == null || root.Attack == null) return; + + PerformAttack(root.Attack); + _currentNode = root; + _comboWindowTimer = root.ComboWindow; + } + + private async void PerformAttack(AttackData data) + { + _attackCts?.Cancel(); + _attackCts?.Dispose(); + _attackCts = CancellationTokenSource.CreateLinkedTokenSource(destroyCancellationToken); + CancellationToken token = _attackCts.Token; + + _attackCooldownTimer = data.Cooldown; + _lastAttackGizmoData = data; + _attackStartTime = Time.time; + _hitFired = false; + + if (_anim != null && !string.IsNullOrEmpty(data.AnimationState)) + _anim.Play(data.AnimationState); + + try + { + await HitRoutine(data, token); + } + catch (System.OperationCanceledException) { } + } + + private async Awaitable HitRoutine(AttackData data, CancellationToken token) + { + float attackStartTime = Time.time; + + if (data.HitTiming > 0f) + await Awaitable.WaitForSecondsAsync(data.HitTiming, token); + + _lastAttackGizmoTime = Time.time; + _lastHitData = data; + _hitFired = true; + + if (data.HitDuration <= 0f) + { + ApplyDamageInArea(data, null); + } + else + { + var alreadyHit = new HashSet(); + float elapsed = 0f; + while (elapsed < data.HitDuration) + { + token.ThrowIfCancellationRequested(); + ApplyDamageInArea(data, alreadyHit); + await Awaitable.NextFrameAsync(token); + elapsed += Time.deltaTime; + } + } + + float remaining = data.MotionDuration - (Time.time - attackStartTime); + if (remaining > 0f) + await Awaitable.WaitForSecondsAsync(remaining, token); + + if (_anim != null && !string.IsNullOrEmpty(_idleAnimationState)) + _anim.Play(_idleAnimationState); + } + + private void ApplyDamageInArea(AttackData data, HashSet alreadyHit) + { + Vector2 center = GetAttackCenter(data.Offset); + + _lastHitData = data; + _lastHitCenter = center; + _lastHitTime = Time.time; + + Collider2D[] hits = Physics2D.OverlapCircleAll(center, data.Radius, _enemyLayer); + foreach (var hit in hits) + { + if (!hit.TryGetComponent(out var target)) continue; + + if (alreadyHit != null) + { + if (alreadyHit.Contains(target)) continue; + alreadyHit.Add(target); + } + + target.TakeDamage(data.Damage); + } + } + + private Vector2 GetAttackCenter(Vector2 offset) + { + float facing = _spriteRenderer != null && _spriteRenderer.flipX ? -1f : 1f; + offset.x *= facing; + return (Vector2)transform.position + offset; + } + + private void ApplyForwardStep(float distance, float duration) + { + if (distance <= 0f) return; + + float safeDuration = Mathf.Max(duration, 0.02f); + float facing = _spriteRenderer != null && _spriteRenderer.flipX ? -1f : 1f; + float vx = facing * (distance / safeDuration); + + _rb.linearVelocity = new Vector2(vx, _rb.linearVelocity.y); + _inputLockTimer = safeDuration; + } + + private void OnDrawGizmos() + { + if (_lastHitData == null || _lastHitTime < 0f) return; + + float since = Time.time - _lastHitTime; + if (since < 0f || since > _hitGizmoFadeDuration) return; + + float t = Mathf.Clamp01(since / _hitGizmoFadeDuration); + float alpha = Mathf.Lerp(0.85f, 0f, t); + float radius = _lastHitData.Radius; + + Gizmos.color = new Color(1f, 0.2f, 0.2f, alpha * 0.35f); + Gizmos.DrawSphere(_lastHitCenter, radius); + + Gizmos.color = new Color(1f, 0f, 0f, alpha); + Gizmos.DrawWireSphere(_lastHitCenter, radius); } private void OnDrawGizmosSelected() { - if (groundCheck == null) return; - Gizmos.color = isGrounded ? Color.green : Color.red; - Gizmos.DrawWireSphere(groundCheck.position, groundCheckRadius); + if (_groundCheck != null) + { + Gizmos.color = _isGrounded ? Color.green : Color.red; + Gizmos.DrawWireSphere(_groundCheck.position, _groundCheckRadius); + } + if (_wallCheckLeft != null) + { + Gizmos.color = _isTouchingLeftWall ? Color.green : Color.red; + Gizmos.DrawWireSphere(_wallCheckLeft.position, _wallCheckRadius); + } + if (_wallCheckRight != null) + { + Gizmos.color = _isTouchingRightWall ? Color.green : Color.red; + Gizmos.DrawWireSphere(_wallCheckRight.position, _wallCheckRadius); + } + + DrawLastAttackGizmo(); + } + + private void DrawLastAttackGizmo() + { + if (_lastAttackGizmoData == null) return; + if (!Application.isPlaying) return; + + float elapsed = Time.time - _lastAttackGizmoTime; + if (elapsed < 0f) return; + + AttackData data = _lastAttackGizmoData; + float activeDuration = Mathf.Max(data.HitDuration, 0.05f); + float fadeDuration = 0.4f; + float total = activeDuration + fadeDuration; + if (elapsed > total) return; + + float alpha = elapsed < activeDuration + ? 1f + : 1f - (elapsed - activeDuration) / fadeDuration; + alpha = Mathf.Clamp01(alpha); + + Vector2 center = GetAttackCenter(data.Offset); + Gizmos.color = new Color(1f, 0.3f, 0.3f, alpha * 0.35f); + Gizmos.DrawSphere(center, data.Radius); + Gizmos.color = new Color(1f, 0f, 0f, alpha); + Gizmos.DrawWireSphere(center, data.Radius); + } + + private void OnGUI() + { + if (!_showAttackDebug || _lastAttackGizmoData == null) return; + + AttackData data = _lastAttackGizmoData; + float elapsed = Time.time - _attackStartTime; + + string status = _hitFired + ? (elapsed < data.HitTiming + Mathf.Max(data.HitDuration, 0.01f) ? "HIT" : "DONE") + : "WINDUP"; + string cooldownText = _attackCooldownTimer > 0f + ? $"{_attackCooldownTimer:F3}s left" + : "READY"; + + string bufferText = _pendingInput.HasValue + ? $"BUFFERED: {_pendingInput.Value}" + : (elapsed >= _bufferOpenTime && _attackCooldownTimer > 0f ? "ready to buffer" : "-"); + + string info = + $"{(string.IsNullOrEmpty(data.AttackName) ? data.name : data.AttackName)} [{status}]\n" + + $"Elapsed : {elapsed:F3} s\n" + + $"HitTiming : {data.HitTiming:F3} s\n" + + $"HitDuration : {data.HitDuration:F3} s\n" + + $"Cooldown : {data.Cooldown:F3} s ({cooldownText})\n" + + $"ComboWindow : {_comboWindowTimer:F3} s\n" + + $"Buffer : {bufferText}"; + + GUIStyle style = new GUIStyle(GUI.skin.box) + { + fontSize = 26, + alignment = TextAnchor.UpperLeft, + richText = true, + padding = new RectOffset(16, 16, 12, 12), + normal = { textColor = Color.white } + }; + + GUI.Box(new Rect(10, 10, 520, 282), info, style); + + DrawTimelineBar(data, elapsed); + } + + private void DrawTimelineBar(AttackData data, float elapsed) + { + float barX = 10f; + float barY = 302f; + float barW = 520f; + float barH = 36f; + float totalTime = Mathf.Max( + data.HitTiming + Mathf.Max(data.HitDuration, 0.05f), + data.Cooldown, + data.MotionDuration, + 0.3f); + + GUI.color = new Color(0f, 0f, 0f, 0.6f); + GUI.DrawTexture(new Rect(barX, barY, barW, barH), Texture2D.whiteTexture); + + float hitX = barX + (data.HitTiming / totalTime) * barW; + float hitEndX = barX + ((data.HitTiming + data.HitDuration) / totalTime) * barW; + GUI.color = new Color(1f, 0.3f, 0.3f, 0.5f); + GUI.DrawTexture(new Rect(hitX, barY, Mathf.Max(hitEndX - hitX, 4f), barH), Texture2D.whiteTexture); + + float bufferX = barX + Mathf.Clamp01(_bufferOpenTime / totalTime) * barW; + GUI.color = new Color(0.2f, 1f, 0.4f, 0.9f); + GUI.DrawTexture(new Rect(bufferX - 2f, barY, 4f, barH), Texture2D.whiteTexture); + + float cdEndX = barX + Mathf.Clamp01(data.Cooldown / totalTime) * barW; + GUI.color = new Color(0.3f, 0.7f, 1f, 0.9f); + GUI.DrawTexture(new Rect(cdEndX - 2f, barY, 4f, barH), Texture2D.whiteTexture); + + float cursorX = barX + Mathf.Clamp01(elapsed / totalTime) * barW; + GUI.color = Color.yellow; + GUI.DrawTexture(new Rect(cursorX - 2f, barY - 4f, 4f, barH + 8f), Texture2D.whiteTexture); + + GUI.color = Color.white; } } diff --git a/Assets/03_Character/WhiteMan/Physics.meta b/Assets/03_Character/WhiteMan/Physics.meta new file mode 100644 index 0000000..1c3600c --- /dev/null +++ b/Assets/03_Character/WhiteMan/Physics.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ed10d659a73ec5646a3c118373bbfea7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/03_Character/WhiteMan/Physics/Player_NoFriction.physicsMaterial2D b/Assets/03_Character/WhiteMan/Physics/Player_NoFriction.physicsMaterial2D new file mode 100644 index 0000000..6f4944d --- /dev/null +++ b/Assets/03_Character/WhiteMan/Physics/Player_NoFriction.physicsMaterial2D @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!62 &6200000 +PhysicsMaterial2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Player_NoFriction + serializedVersion: 2 + friction: 0 + bounciness: 0 + m_FrictionCombine: 3 + m_BounceCombine: 3 diff --git a/Assets/03_Character/WhiteMan/Physics/Player_NoFriction.physicsMaterial2D.meta b/Assets/03_Character/WhiteMan/Physics/Player_NoFriction.physicsMaterial2D.meta new file mode 100644 index 0000000..4b645fe --- /dev/null +++ b/Assets/03_Character/WhiteMan/Physics/Player_NoFriction.physicsMaterial2D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d6340da9be911d04bb908e5c78fea72c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 6200000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_0.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_0.asset index b9a05ab..20f4de8 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_0.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_0.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1fd0ad587589ab1f599b518af78f95802bf4a966c0e1bcf6e3abb147992606e5 +oid sha256:fac6965d5fbda061d20eb9806e3b9654b14a25d5ef855f6591dc4f09a2bfeeba size 846 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_1.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_1.asset index 91b773d..4692121 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_1.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_1.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:208a35ab2f615674afaf8def430d4de297ec1167c8f2c216401c94f2e8ae9969 +oid sha256:01efc00f36c05fb024b34b53fce4f501f9b479b26fe1351b774cfe1402a5b2e2 size 846 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_11.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_11.asset index 695aa2c..6c551e3 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_11.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_11.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bac91330bb24eaaa979bcdeba9b4062f5eac01cb44298ceb21d980be30521e77 +oid sha256:e6167728c18dce02642688b952279a4df1932353410b0c4196cfb7a862837521 size 846 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_12.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_12.asset index c5963e5..ec133bf 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_12.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_12.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:64465a459e256ab6e09ecd6e51e368ba7d516dc0c371c220ef252ffe53e0b721 +oid sha256:18cfd54a3c9425f5c8d8b03d9b4c09417b137b78e900885a6110cbe5c4590a52 size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_13.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_13.asset index 9a4020f..7f0214c 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_13.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_13.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3b95690e5a628d9490b63e2fbcfd761b81b9e028ad2dc5fe7d0a764c8a09744d +oid sha256:2fd6a961cd03f200403d90dd67fc26219b4fc7b9d0ed551748b22d505d371649 size 846 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_14.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_14.asset index 35dce3f..2998a6b 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_14.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_14.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bed211a0f2e31f484ff314ef635827b31423c4a73544ce4071bc871042521235 +oid sha256:a6ff9b7c01500f4ad74610d00ca75fbadafe8bcff1ce72533a92de7bc456cb55 size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_15.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_15.asset index c7a89c6..677024e 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_15.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_15.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8bc31b6f79b0324211c96dd635b379ff69684d275c8caabda10169f82bffd77b +oid sha256:c6fea9800a0bfebe2c726165d8f5187bb7c74b7b9a672154200e3ea7487130e4 size 848 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_16.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_16.asset index 2f6a58b..484807f 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_16.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_16.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7aa1c9943c57f6d34e1bddfe11031bc490d44fc8bfdf80b01a36d3367fee8e7d +oid sha256:de9d9d39ecd090911274c483439be0465c604eda42482b65fc0b800121d59dd9 size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_17.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_17.asset index fec29e3..635da8c 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_17.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_17.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c718382051cc0a4936b0e14b7899ae3aa56840fa912ad62ee0104321e6154e2d +oid sha256:01305eb8444cf1efbbe36959caf4bbc135ecd8ea41d7df5bde0ba8dbe3d51d9a size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_18.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_18.asset index e4c14fb..b30288c 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_18.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_18.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0f22c232c3aaae9ea86e89b598157ced0eef323634d40d4ab7760171ad351b9c +oid sha256:cddc7011666de83dc66e255b9d23702dee320a1ca8acc53d837a3ca1e2d4baa3 size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_19.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_19.asset index 65ec451..aeee594 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_19.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_19.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce266623f4ca59e3d36e895fd15b09a630d60695053f4dd02cfc4f990b9a6d04 +oid sha256:8cbfec9702196baba96845e1c5696cce302eaa26a46ac5f58551524552519bc0 size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_2.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_2.asset index 23ed1c0..42fe015 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_2.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_2.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:01c03275340e8d96bb29fb14f0a949baf840c2c329839c6cc91e282d89afd0ed +oid sha256:7febbe568f94190af86a7b963a2a7df46b8b848cd392ac07a645d0995d099d01 size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_20.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_20.asset index 757a021..deb7d63 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_20.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_20.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:454d73e3b992a67802be194a0209da7d6f455b1d0c8171eb4aa8cf3a3a50e71f +oid sha256:78e22bd9d4689ad437004b1dfe36ee268990289b4fce16b70eda25e747394241 size 848 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_21.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_21.asset index 6e770e1..c6de95b 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_21.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_21.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bfe08a434562b218ed33d92d63545cabff9af58fc78d554e4dfc503e73f7cc66 +oid sha256:2fe55657f9f29bcb28e713043e72b7d1bf251decd0f805b70068e50c926dbc6b size 846 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_22.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_22.asset index 6e9f9b0..8943536 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_22.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_22.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4dea04f442515f2e2c42554942e73d50936c6e6ddddd3a9ddc73bd8c1e2fc3f6 +oid sha256:cf99663b80e835e551d8e5498f4469045e4bc2b80c8236eaeef623121e6831d3 size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_23.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_23.asset index 68957e5..84cf0fb 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_23.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_23.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f804c808d0e86fcf0b27823a5aa32d596cea61fd00a1f74ff19eb18a6d169b91 +oid sha256:bceb0a96b552c1602245c1f93f40a4fd5c0f5460c60472921866dbe568804554 size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_24.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_24.asset index 8a126eb..bc541ec 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_24.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_24.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cce2f54ea8f2eeb44ba06699a4fdad08d4e3cee7c7904ad4e3f1c490e8e3e15b +oid sha256:f8cb8f21531a26794b9be49f4ae897fad59a6c2e4bdddc9238597f1548c588b8 size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_25.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_25.asset index 12f6cc8..27e1db6 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_25.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_25.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f53e7a767aa918c7c27422582ab5080f54dcd5f426a7a53fa2ebe9568462398c +oid sha256:93d86b46f48483acd1013a086c0eca435dc42de46287bf08547d6544d48e4bd2 size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_26.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_26.asset index 0b7f5b5..630b77d 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_26.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_26.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:45dd0b39b5eaf9ae1b0fdcc14680c7e7ed557dd538878a4775f6ff8fa1183497 +oid sha256:a81e531064f69dff7171c268c3e20bee70b81e5eb7f19c09efd6495fb31d58ec size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_27.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_27.asset index 13cd36a..3a1d25b 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_27.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_27.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:580d87d5519e137899e188015cfa158b5deb7e22ab249649b21bba544452beeb +oid sha256:538d509722a5f27354f204a7be647c53078dedabbd702cc888e2a8ce73945486 size 846 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_28.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_28.asset index 5b0f404..92742d5 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_28.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_28.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:417781a6f4c64751b8fbef885db2be1a4a8f5ce165c1e20beb059cfab3f46ac8 +oid sha256:0fbc365ae108c4c98bdc45c7e2fdcca10dba6246fbeebd3499250ad516000417 size 846 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_29.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_29.asset index 538db79..e6c4000 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_29.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_29.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83d7b1eb56d7670fabe8a376a10bb8003ce3471dea45c127f8afc405416baef0 +oid sha256:0103221e6554d91f6a4f4fe1a00d00efa66a5e6b3552a9644bd6f5e5be7d88d5 size 847 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_3.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_3.asset index 3d6ca1f..abb8119 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_3.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_3.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0cfbdc4218bd95ac517a7f72d73f7e2d1823cab76e480b6c20993b772057070 +oid sha256:1e592a4eff3d6a2bea54503b7d79edc979b4f28a1b804459df0fa4711ba11c8e size 845 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_30.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_30.asset index 4739cfa..5c7fb5a 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_30.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_30.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c1dc7311d989873b42d03d888c3e1ad67c6305ee774018952d797588f4df293f +oid sha256:17c923d806fa101cf39f8ef41f1c998f95910098dbb84ec0ab045c9bdaf56921 size 846 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_31.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_31.asset index cadbd7d..b7444a7 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_31.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_31.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4984237e7e842f927db6d77e4a6e569546f64a9c2cc654c6ed0e82ff6e0f593d +oid sha256:b01def90d2063663621423eb3c8fda33281a404dd4df82460799f02a6f7b7fdf size 848 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_32.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_32.asset index 70f4f4d..593f74c 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_32.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_32.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1b6417b32cca2a6d0f4ca68ec69fbaba5104e4e546ed54dbf196c38044fa7f97 +oid sha256:205c03f526e49c4a038e9782578cf5bfc0b4f53d75a4c4b9430a3854168d0068 size 848 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_36.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_36.asset index 684f162..2328538 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_36.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_36.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2c192eb5220dbb95e3c9329948695e6c5b64db4d777df87bcddc832d4c224b60 +oid sha256:58e1ccffa8df6a866b70650c36f977aaa16c35419b2f64578a767d601e8afe48 size 848 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_37.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_37.asset index b554641..9743ee4 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_37.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_37.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f697f011040b6115ca39ab491c7af048815124a5008ddf0f465d88d8f72c501e +oid sha256:3d2f0f1a81197031f2c8de32990ae91f776ba1e73c4fd86411409c974ee85245 size 846 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_38.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_38.asset index 9851d5d..0850d05 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_38.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_38.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:969c17c0b0c4e6291e865d191e0175718b95cf3c5fc8ecc47d463ca20865983a +oid sha256:b426e62bca1fb1eb4f5abc3c9ef28f0ed8f752532e02984f3b43d7ae4e33a8a8 size 848 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_4.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_4.asset index a16c4e8..09651f2 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_4.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_4.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9a4f16f7de227e2a86220957ed71ec5b397c909b9b7d4e3661f5ac919af2b9ef +oid sha256:b669cb86e57ca87efa6cbdc508d5944df4691478f3688a47cc69ab1f4d9d1a1c size 846 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_5.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_5.asset index a12ecea..061581c 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_5.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_5.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d6bbb5e42395c48abd999fe5517b4eb8ccb5bb4db9ec025b9a5ea88c605aaeea +oid sha256:485b35de84b82a21e591e3777657c9aae684715fd9ea7b1f159290b8ccb539ff size 845 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_7.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_7.asset index 084c816..618cb7c 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_7.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_7.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f57a6a744539e96c86c76d1d02ec13dd3fc1910073dc63e9a5ae23b330f5f97f +oid sha256:f3f791c6a7927ceba2a05b9bd2e855a2c36ff5b85f3719b182c8176e4d36a05d size 846 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_8.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_8.asset index 05dd60f..440b146 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_8.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_8.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f86ce0a5d356bbb5b482ae35b866f2b6caff916319fd2efe14f25be82fa6049b +oid sha256:f3840f8507e287c502ad4f1e2ee990423342410f949d0895c3eae34887e48172 size 846 diff --git a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_9.asset b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_9.asset index 7f7b925..22e9c4c 100644 --- a/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_9.asset +++ b/Assets/04_MapTiles/MapLevelPalette/Skull Garden Tiles_96x96 Sprite Sheet_9.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:31e8fc4b98c492eace149d9ca164aaa7c0a2d8f024c9b71f0ad66c92f8752bfd +oid sha256:e10cbdcb09eb6519b065e4767a4e853c8e809afd5f02c9b1df52ab19027b75fd size 846 diff --git a/Assets/05_Data.meta b/Assets/05_Data.meta new file mode 100644 index 0000000..3a0dd1c --- /dev/null +++ b/Assets/05_Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 874c09e27a1996a488f4c8fcc0463f1c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Attack.meta b/Assets/05_Data/Attack.meta new file mode 100644 index 0000000..7b66f2a --- /dev/null +++ b/Assets/05_Data/Attack.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0c30e407ce5cfbd4ca6ad0704d9d03c6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Attack/Kick_A.asset b/Assets/05_Data/Attack/Kick_A.asset new file mode 100644 index 0000000..e59cbb3 --- /dev/null +++ b/Assets/05_Data/Attack/Kick_A.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72dbd6f9fd5f4dc9ca77940765f38b40a7adea50d27ad13e90bf727f3e9069f6 +size 595 diff --git a/Assets/05_Data/Attack/Kick_A.asset.meta b/Assets/05_Data/Attack/Kick_A.asset.meta new file mode 100644 index 0000000..0c4f0db --- /dev/null +++ b/Assets/05_Data/Attack/Kick_A.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: edf7db29ac692e346969f62ba6affb99 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Attack/Kick_B.asset b/Assets/05_Data/Attack/Kick_B.asset new file mode 100644 index 0000000..57d57ce --- /dev/null +++ b/Assets/05_Data/Attack/Kick_B.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b526368afdd58cbbd4dcc02e8e9508ac87ff65b3c1443c69e55cdf95e0234061 +size 595 diff --git a/Assets/05_Data/Attack/Kick_B.asset.meta b/Assets/05_Data/Attack/Kick_B.asset.meta new file mode 100644 index 0000000..2fc0bb4 --- /dev/null +++ b/Assets/05_Data/Attack/Kick_B.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9eab77b3aa491b14082559d7670fb8fa +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Attack/Kick_C.asset b/Assets/05_Data/Attack/Kick_C.asset new file mode 100644 index 0000000..a792047 --- /dev/null +++ b/Assets/05_Data/Attack/Kick_C.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:271ca01e668560c7ee35da6cd07bbb44e5b49c2133bd18fc152356f847942309 +size 594 diff --git a/Assets/05_Data/Attack/Kick_C.asset.meta b/Assets/05_Data/Attack/Kick_C.asset.meta new file mode 100644 index 0000000..94db7ba --- /dev/null +++ b/Assets/05_Data/Attack/Kick_C.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 66ae598bd05e97a4b87b3f49a06eed1d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Attack/Punch_A.asset b/Assets/05_Data/Attack/Punch_A.asset new file mode 100644 index 0000000..31f5bfb --- /dev/null +++ b/Assets/05_Data/Attack/Punch_A.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ea339da71d3097a389461bc60fd69f952a348e58134c712a012d908ebad858b +size 597 diff --git a/Assets/05_Data/Attack/Punch_A.asset.meta b/Assets/05_Data/Attack/Punch_A.asset.meta new file mode 100644 index 0000000..02459c1 --- /dev/null +++ b/Assets/05_Data/Attack/Punch_A.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df671596c8a54114789564d1ae9e7b58 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Attack/Punch_B.asset b/Assets/05_Data/Attack/Punch_B.asset new file mode 100644 index 0000000..47fb8c0 --- /dev/null +++ b/Assets/05_Data/Attack/Punch_B.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:940ff46b36ef1fc51609c093504e46c8b08d7400edc5be42341aaddc3ab86df1 +size 597 diff --git a/Assets/05_Data/Attack/Punch_B.asset.meta b/Assets/05_Data/Attack/Punch_B.asset.meta new file mode 100644 index 0000000..6bbe2aa --- /dev/null +++ b/Assets/05_Data/Attack/Punch_B.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7bd5ebeb5044dfb44864673343c5b63f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Attack/Punch_C.asset b/Assets/05_Data/Attack/Punch_C.asset new file mode 100644 index 0000000..23c09ec --- /dev/null +++ b/Assets/05_Data/Attack/Punch_C.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:458b420ea8c651c508121438e640eada16c7664a99b7b1fd9e65221e5ac45083 +size 597 diff --git a/Assets/05_Data/Attack/Punch_C.asset.meta b/Assets/05_Data/Attack/Punch_C.asset.meta new file mode 100644 index 0000000..f28b66a --- /dev/null +++ b/Assets/05_Data/Attack/Punch_C.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 961b750a6648ff24d88f8cf5dbcfe9c3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Combo.meta b/Assets/05_Data/Combo.meta new file mode 100644 index 0000000..fb81e67 --- /dev/null +++ b/Assets/05_Data/Combo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4f208be54919bfa4cb1feb32daaf1c9e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Combo/Combo_Kick_A.asset b/Assets/05_Data/Combo/Combo_Kick_A.asset new file mode 100644 index 0000000..16d6814 --- /dev/null +++ b/Assets/05_Data/Combo/Combo_Kick_A.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b71f8555c5216a9405f13b9e1649a3256a13af9ea0982cbf1bb622ec468b9e7a +size 705 diff --git a/Assets/05_Data/Combo/Combo_Kick_A.asset.meta b/Assets/05_Data/Combo/Combo_Kick_A.asset.meta new file mode 100644 index 0000000..b6c74c5 --- /dev/null +++ b/Assets/05_Data/Combo/Combo_Kick_A.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e868141c61f9d3c41ab8c631d68e5058 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Combo/Combo_Kick_B.asset b/Assets/05_Data/Combo/Combo_Kick_B.asset new file mode 100644 index 0000000..b83c1a0 --- /dev/null +++ b/Assets/05_Data/Combo/Combo_Kick_B.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:434c2fb5c2eda30d50b943d761e95ba642fb028548ff119e3d2a8e39a9b0137b +size 708 diff --git a/Assets/05_Data/Combo/Combo_Kick_B.asset.meta b/Assets/05_Data/Combo/Combo_Kick_B.asset.meta new file mode 100644 index 0000000..962d1ff --- /dev/null +++ b/Assets/05_Data/Combo/Combo_Kick_B.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4c94ebe82d46ebf4d88a17ce859ebd55 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Combo/Combo_Kick_C.asset b/Assets/05_Data/Combo/Combo_Kick_C.asset new file mode 100644 index 0000000..db7a69e --- /dev/null +++ b/Assets/05_Data/Combo/Combo_Kick_C.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:825e76e7b78d8f3e6575db6a20cb61e0b1daa51a1824e1204163ca9cb11ba8fb +size 567 diff --git a/Assets/05_Data/Combo/Combo_Kick_C.asset.meta b/Assets/05_Data/Combo/Combo_Kick_C.asset.meta new file mode 100644 index 0000000..67290a7 --- /dev/null +++ b/Assets/05_Data/Combo/Combo_Kick_C.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e6bcd60837177ac458507946d733c3dd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Combo/Combo_Punch_A.asset b/Assets/05_Data/Combo/Combo_Punch_A.asset new file mode 100644 index 0000000..c7ae42c --- /dev/null +++ b/Assets/05_Data/Combo/Combo_Punch_A.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d0941defedb480bf1ff9ee11be2d0d25c8ac000ffdf8ab392980a6cd89032fe +size 709 diff --git a/Assets/05_Data/Combo/Combo_Punch_A.asset.meta b/Assets/05_Data/Combo/Combo_Punch_A.asset.meta new file mode 100644 index 0000000..6c65f14 --- /dev/null +++ b/Assets/05_Data/Combo/Combo_Punch_A.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 62ff3f93ff39de341ab516bb3dfe4b75 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Combo/Combo_Punch_B.asset b/Assets/05_Data/Combo/Combo_Punch_B.asset new file mode 100644 index 0000000..65f39be --- /dev/null +++ b/Assets/05_Data/Combo/Combo_Punch_B.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad0e94dcd0572a96d6503ae7a98a28ff25a1ff1eb7d15c3bf0522ad846828785 +size 710 diff --git a/Assets/05_Data/Combo/Combo_Punch_B.asset.meta b/Assets/05_Data/Combo/Combo_Punch_B.asset.meta new file mode 100644 index 0000000..be6d9ca --- /dev/null +++ b/Assets/05_Data/Combo/Combo_Punch_B.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 979e8f13c305e1c4bbdeb2ab83add475 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/05_Data/Combo/Combo_Punch_C.asset b/Assets/05_Data/Combo/Combo_Punch_C.asset new file mode 100644 index 0000000..047a960 --- /dev/null +++ b/Assets/05_Data/Combo/Combo_Punch_C.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd4e3e455128278ecbb1a127abcd52cb08a36a89a664722a244aa2642b15934f +size 569 diff --git a/Assets/05_Data/Combo/Combo_Punch_C.asset.meta b/Assets/05_Data/Combo/Combo_Punch_C.asset.meta new file mode 100644 index 0000000..f862d3e --- /dev/null +++ b/Assets/05_Data/Combo/Combo_Punch_C.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 460f8d2a9a57dd14999125a99069a485 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/11_Input/GameInput.inputactions b/Assets/11_Input/GameInput.inputactions index 81ac07e..38da9e3 100644 --- a/Assets/11_Input/GameInput.inputactions +++ b/Assets/11_Input/GameInput.inputactions @@ -23,6 +23,24 @@ "processors": "", "interactions": "", "initialStateCheck": false + }, + { + "name": "Punch", + "type": "Button", + "id": "3dcb1343-a166-469d-990e-24ccedf2d09e", + "expectedControlType": "", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Kick", + "type": "Button", + "id": "1af50460-846d-4f2a-8030-f9712ad7df6b", + "expectedControlType": "", + "processors": "", + "interactions": "", + "initialStateCheck": false } ], "bindings": [ @@ -91,6 +109,28 @@ "action": "Jump", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "9f28cd37-d35c-4f36-8af0-a0020d508486", + "path": "/z", + "interactions": "", + "processors": "", + "groups": "", + "action": "Punch", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "43e56be6-df9b-4845-ba12-cd109ac1ffa0", + "path": "/x", + "interactions": "", + "processors": "", + "groups": "", + "action": "Kick", + "isComposite": false, + "isPartOfComposite": false } ] } diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset index c86ef2e..f491274 100644 --- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset +++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f29d05e7947ebf0c2850c63efbed1521708e3365a467abcfa42a63eba963e514 -size 547081 +oid sha256:ca0715a2b71198cb4d9887fa413507f2ec96dee494035eb8e917f557686ceba7 +size 17072 diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index b41941b..30210b1 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6fd895357f68c28a46bc0c75ed7d3a1e61eb96e55b3b1d34bf9919cad44b033c -size 564 +oid sha256:4989ce711c55e1979c0e21ba039bd806ccb5a06c7a35d91bcea65c51f3226d8e +size 569