캐릭터 dead 모션 연결

This commit is contained in:
aube.lee
2025-02-02 16:37:22 +09:00
parent db7ae8d43d
commit 6792d21e5b
6 changed files with 441 additions and 3 deletions

View File

@@ -1,5 +1,27 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1107 &-9077249474055646643
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Dead State
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 6044773153840634837}
m_Position: {x: 340, y: 60, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 6044773153840634837}
--- !u!1102 &-8486694295061838376 --- !u!1102 &-8486694295061838376
AnimatorState: AnimatorState:
serializedVersion: 6 serializedVersion: 6
@@ -43,7 +65,11 @@ AnimatorStateMachine:
- serializedVersion: 1 - serializedVersion: 1
m_StateMachine: {fileID: -5086533985266875271} m_StateMachine: {fileID: -5086533985266875271}
m_Position: {x: 370, y: 220, z: 0} m_Position: {x: 370, y: 220, z: 0}
m_AnyStateTransitions: [] - serializedVersion: 1
m_StateMachine: {fileID: -9077249474055646643}
m_Position: {x: 360, y: 20, z: 0}
m_AnyStateTransitions:
- {fileID: -5224337707955684621}
m_EntryTransitions: m_EntryTransitions:
- {fileID: -309797680620189463} - {fileID: -309797680620189463}
m_StateMachineTransitions: {} m_StateMachineTransitions: {}
@@ -80,6 +106,31 @@ AnimatorState:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: m_TimeParameter:
--- !u!1101 &-5224337707955684621
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: Dead Trigger
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 6044773153840634837}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1107 &-5086533985266875271 --- !u!1107 &-5086533985266875271
AnimatorStateMachine: AnimatorStateMachine:
serializedVersion: 6 serializedVersion: 6
@@ -92,6 +143,9 @@ AnimatorStateMachine:
- serializedVersion: 1 - serializedVersion: 1
m_State: {fileID: -693367234456754354} m_State: {fileID: -693367234456754354}
m_Position: {x: 370, y: 120, z: 0} m_Position: {x: 370, y: 120, z: 0}
- serializedVersion: 1
m_State: {fileID: 4521152736789440262}
m_Position: {x: 450, y: 210, z: 0}
m_ChildStateMachines: [] m_ChildStateMachines: []
m_AnyStateTransitions: [] m_AnyStateTransitions: []
m_EntryTransitions: [] m_EntryTransitions: []
@@ -174,6 +228,18 @@ AnimatorStateTransition:
m_InterruptionSource: 0 m_InterruptionSource: 0
m_OrderedInterruption: 1 m_OrderedInterruption: 1
m_CanTransitionToSelf: 1 m_CanTransitionToSelf: 1
--- !u!114 &-1198824080363282594
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 74387cf4b85c95e4faa62256886c64d9, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1102 &-693367234456754354 --- !u!1102 &-693367234456754354
AnimatorState: AnimatorState:
serializedVersion: 6 serializedVersion: 6
@@ -236,6 +302,18 @@ AnimatorController:
m_DefaultInt: 0 m_DefaultInt: 0
m_DefaultBool: 1 m_DefaultBool: 1
m_Controller: {fileID: 9100000} m_Controller: {fileID: 9100000}
- m_Name: Dead Trigger
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: Hit Trigger
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers: m_AnimatorLayers:
- serializedVersion: 5 - serializedVersion: 5
m_Name: Base Layer m_Name: Base Layer
@@ -289,3 +367,102 @@ AnimatorTransition:
m_Mute: 0 m_Mute: 0
m_IsExit: 0 m_IsExit: 0
serializedVersion: 1 serializedVersion: 1
--- !u!1101 &3671405725986199302
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 0}
m_Solo: 0
m_Mute: 0
m_IsExit: 1
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &4521152736789440262
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Skill Attack
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 3671405725986199302}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 8430766079991684248, guid: cf1b986646b388c44be6701f1d4e2aa9, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &6044773153840634837
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Dead
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 6812893099851778904}
m_StateMachineBehaviours:
- {fileID: -1198824080363282594}
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 2329023500796642772, guid: 18ea9dc65f875244da367e162558c852, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &6812893099851778904
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 0}
m_Solo: 0
m_Mute: 0
m_IsExit: 1
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.6875
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1

View File

@@ -49,6 +49,28 @@ AnimatorState:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: m_TimeParameter:
--- !u!1101 &-8402833176156813762
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 0}
m_Solo: 0
m_Mute: 0
m_IsExit: 1
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.6875
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1107 &-8374698207545167250 --- !u!1107 &-8374698207545167250
AnimatorStateMachine: AnimatorStateMachine:
serializedVersion: 6 serializedVersion: 6
@@ -65,7 +87,11 @@ AnimatorStateMachine:
- serializedVersion: 1 - serializedVersion: 1
m_StateMachine: {fileID: -3582925031321173947} m_StateMachine: {fileID: -3582925031321173947}
m_Position: {x: 350, y: 240, z: 0} m_Position: {x: 350, y: 240, z: 0}
m_AnyStateTransitions: [] - serializedVersion: 1
m_StateMachine: {fileID: -4377896349108111501}
m_Position: {x: 380, y: 20, z: 0}
m_AnyStateTransitions:
- {fileID: 8566050554083356950}
m_EntryTransitions: m_EntryTransitions:
- {fileID: -309797680620189463} - {fileID: -309797680620189463}
m_StateMachineTransitions: {} m_StateMachineTransitions: {}
@@ -102,6 +128,68 @@ AnimatorState:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: m_TimeParameter:
--- !u!1102 &-6018496262334504608
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Dead
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: -8402833176156813762}
m_StateMachineBehaviours:
- {fileID: -4024099522096655756}
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7846135321654629071, guid: e13fc322ef0ed6d4592b0085bd5771ee, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &-4377896349108111501
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Dead State
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -6018496262334504608}
m_Position: {x: 330, y: 60, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 730, y: 110, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -6018496262334504608}
--- !u!114 &-4024099522096655756
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 74387cf4b85c95e4faa62256886c64d9, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1107 &-3582925031321173947 --- !u!1107 &-3582925031321173947
AnimatorStateMachine: AnimatorStateMachine:
serializedVersion: 6 serializedVersion: 6
@@ -114,6 +202,9 @@ AnimatorStateMachine:
- serializedVersion: 1 - serializedVersion: 1
m_State: {fileID: 3756675701075027738} m_State: {fileID: 3756675701075027738}
m_Position: {x: 350, y: 120, z: 0} m_Position: {x: 350, y: 120, z: 0}
- serializedVersion: 1
m_State: {fileID: -1129636382595947497}
m_Position: {x: 420, y: 200, z: 0}
m_ChildStateMachines: [] m_ChildStateMachines: []
m_AnyStateTransitions: [] m_AnyStateTransitions: []
m_EntryTransitions: [] m_EntryTransitions: []
@@ -174,6 +265,33 @@ AnimatorStateTransition:
m_InterruptionSource: 0 m_InterruptionSource: 0
m_OrderedInterruption: 1 m_OrderedInterruption: 1
m_CanTransitionToSelf: 1 m_CanTransitionToSelf: 1
--- !u!1102 &-1129636382595947497
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Skill Attack
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 1683219826370501469}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 3710427687745599305, guid: 2a760b1f58236ab46a68fb114edcd11b, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1109 &-309797680620189463 --- !u!1109 &-309797680620189463
AnimatorTransition: AnimatorTransition:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
@@ -209,6 +327,18 @@ AnimatorController:
m_DefaultInt: 0 m_DefaultInt: 0
m_DefaultBool: 0 m_DefaultBool: 0
m_Controller: {fileID: 9100000} m_Controller: {fileID: 9100000}
- m_Name: Dead Trigger
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: Hit Trigger
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers: m_AnimatorLayers:
- serializedVersion: 5 - serializedVersion: 5
m_Name: Base Layer m_Name: Base Layer
@@ -248,6 +378,28 @@ AnimatorStateMachine:
m_ExitPosition: {x: 840, y: 110, z: 0} m_ExitPosition: {x: 840, y: 110, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -8309299064988908239} m_DefaultState: {fileID: -8309299064988908239}
--- !u!1101 &1683219826370501469
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 0}
m_Solo: 0
m_Mute: 0
m_IsExit: 1
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.5833334
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1109 &2750058937236111561 --- !u!1109 &2750058937236111561
AnimatorTransition: AnimatorTransition:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
@@ -289,3 +441,28 @@ AnimatorState:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: m_TimeParameter:
--- !u!1101 &8566050554083356950
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: Dead Trigger
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -6018496262334504608}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1

View File

@@ -4,9 +4,15 @@ using UnityEngine;
namespace TON namespace TON
{ {
public class CharacterBase : MonoBehaviour public class CharacterBase : MonoBehaviour, IDamage
{ {
public float currentHP;
public float maxHP;
public float currentSP;
public float maxSP;
public float speed; public float speed;
public float jumpForce = 5f; // 점프 힘 public float jumpForce = 5f; // 점프 힘
private bool isGrounded = true; // 플레이어가 바닥에 있는지 여부를 판단 private bool isGrounded = true; // 플레이어가 바닥에 있는지 여부를 판단
@@ -22,10 +28,22 @@ namespace TON
animator = GetComponent<Animator>(); animator = GetComponent<Animator>();
joystick = ControllerUI.Instance.joystick; joystick = ControllerUI.Instance.joystick;
ControllerUI.Instance.linkedCharactor = this; ControllerUI.Instance.linkedCharactor = this;
Initialize();
}
public void Initialize()
{
int playerIndex = PlayerPrefs.GetInt("SelectedPlayerIndex", 0);
PlayerData playerData = PlayerDataManager.Singleton.players[playerIndex];
currentHP = maxHP = playerData.hp;
currentSP = maxSP = playerData.mp;
} }
public void FixedUpdate() public void FixedUpdate()
{ {
// 키보드 입력과 조이스틱 입력 통합 // 키보드 입력과 조이스틱 입력 통합
float horizontalInput = Input.GetAxis("Horizontal"); // 키보드 좌우 입력 float horizontalInput = Input.GetAxis("Horizontal"); // 키보드 좌우 입력
if (joystick != null && Mathf.Abs(joystick.Horizontal) > 0.01f) if (joystick != null && Mathf.Abs(joystick.Horizontal) > 0.01f)
@@ -84,7 +102,32 @@ namespace TON
} }
public void ApplyDamage(float damage)
{
float prevHP = currentHP;
currentHP -= damage;
currentHP = Mathf.Clamp(currentHP, 0, maxHP);
// 체력이 0 아래로 떨어지고 현 상태가 IsAlive 일때만 동작하도록 함
if (currentHP <= 0f && prevHP > 0)
{
animator.SetTrigger("Dead Trigger");
}
// 체력이 0 보다 클때만 피격 모션 실행
if (currentHP > 0)
{
if (damage < 10)
{
animator.SetTrigger("Hit Trigger");
}
}
}
public void Dead()
{
gameObject.SetActive(false);
} }
} }
}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 42c0652b7cdf76049b8139ee302273b1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,22 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace TON
{
public class DeadStateMachine : StateMachineBehaviour
{
public override void OnStateMachineEnter(Animator animator, int stateMachinePathHash)
{
base.OnStateMachineEnter(animator, stateMachinePathHash);
}
public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
if (animator.TryGetComponent(out CharacterBase character))
{
character.Dead();
}
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 74387cf4b85c95e4faa62256886c64d9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: