From 85fae09b375836b981f51c6c4c9d1de3118af078 Mon Sep 17 00:00:00 2001 From: Mingu Kim Date: Sat, 8 Feb 2025 20:34:28 +0900 Subject: [PATCH 1/3] =?UTF-8?q?warring=20=EA=B2=BD=EA=B3=A0=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Personal Scenes/dev_mingu/Ingame.unity | 6 +- .../Gameton/Scripts/Monster/MonsterBase.cs | 32 ++++---- .../Common/Animation/Controller.controller | 81 ++----------------- 3 files changed, 23 insertions(+), 96 deletions(-) diff --git a/Gameton-06/Assets/Gameton/Scenes/Personal Scenes/dev_mingu/Ingame.unity b/Gameton-06/Assets/Gameton/Scenes/Personal Scenes/dev_mingu/Ingame.unity index 969791dd..70015173 100644 --- a/Gameton-06/Assets/Gameton/Scenes/Personal Scenes/dev_mingu/Ingame.unity +++ b/Gameton-06/Assets/Gameton/Scenes/Personal Scenes/dev_mingu/Ingame.unity @@ -25190,7 +25190,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 866829734583457878, guid: 1e126f96ebcf4245a3328353992d46f6, type: 3} propertyPath: m_CategoryHash - value: 0.009161512 + value: 1.0429618e-14 objectReference: {fileID: 0} - target: {fileID: 866829734583457880, guid: 1e126f96ebcf4245a3328353992d46f6, type: 3} propertyPath: m_FlipX @@ -25199,7 +25199,7 @@ PrefabInstance: - target: {fileID: 866829734583457880, guid: 1e126f96ebcf4245a3328353992d46f6, type: 3} propertyPath: m_Sprite value: - objectReference: {fileID: 4723107735738678597, guid: 8c818873fb8d4ad3bb40ebb62d906a1d, type: 3} + objectReference: {fileID: 1856677538, guid: 8c818873fb8d4ad3bb40ebb62d906a1d, type: 3} - target: {fileID: 866829735663616562, guid: 1e126f96ebcf4245a3328353992d46f6, type: 3} propertyPath: m_Name value: BlueDragon @@ -50707,7 +50707,7 @@ Rigidbody2D: m_Simulated: 1 m_UseFullKinematicContacts: 0 m_UseAutoMass: 0 - m_Mass: 1 + m_Mass: 0.0001 m_LinearDrag: 0 m_AngularDrag: 0.05 m_GravityScale: 1 diff --git a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs index 47a2831a..75233d79 100644 --- a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs +++ b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using System.Numerics; @@ -67,8 +68,12 @@ namespace TON // todo : 충돌 했으면 attack 전환 (바로 그냥 공격하게 따라가지 말고) // todo : 시야를 벗어났으면 idle 전환 - _isDetect = false; - + if (_isDetect) + { + _animator.SetTrigger("Attack"); + _isWalking = false; + } + if (_isWalking) { // walking 상태에서 walkingTime을 초과할 경우 idle 애니메이션 재생 @@ -97,14 +102,7 @@ namespace TON _isWalking = true; } } - - // if (_isHit) - // { - // _animator.SetBool("Attack", _isDetect); - // - // _isWalking = false; - // - // } + _animator.SetBool("Walk", _isWalking); // 걷기 애니메이션 } @@ -143,6 +141,7 @@ namespace TON void MonsterAttack(GameObject player) { + _animator.SetTrigger("Attack"); // 임시 반영 수정 예정 DamageCalculator damageCalculator = new DamageCalculator(); @@ -158,20 +157,17 @@ namespace TON private void OnCollisionEnter2D(Collision2D other) { - _isDetect = true; - if (other.collider.CompareTag("Player")) { - - _animator.SetBool("Attack", true); // 공격 애니메이션 재생 + _isDetect = true; MonsterAttack(other.gameObject); // 플레이어에게 공격 Debug.Log("감지됨"); } + } - if (!other.collider.CompareTag("Player")) - { - _isDetect = false; - } + private void OnCollisionExit2D(Collision2D other) + { + _isDetect = false; } } } diff --git a/Gameton-06/Assets/PixelFantasy/PixelMonsters/Common/Animation/Controller.controller b/Gameton-06/Assets/PixelFantasy/PixelMonsters/Common/Animation/Controller.controller index ce4f2f10..a38c7a2a 100644 --- a/Gameton-06/Assets/PixelFantasy/PixelMonsters/Common/Animation/Controller.controller +++ b/Gameton-06/Assets/PixelFantasy/PixelMonsters/Common/Animation/Controller.controller @@ -191,28 +191,6 @@ MonoBehaviour: m_EditorClassIdentifier: Continuous: 0 Active: 0 ---- !u!1101 &-2848854086711600340 -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: 3188460960225426455} - 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!1102 &-1793952159812074963 AnimatorState: serializedVersion: 6 @@ -583,28 +561,6 @@ AnimatorStateMachine: m_ExitPosition: {x: 20, y: 220, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: -1674859921881163369} ---- !u!1101 &3032347272367370037 -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: -56690746207215259} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0.25 - m_TransitionOffset: 0 - m_ExitTime: 0.39999998 - m_HasExitTime: 1 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 --- !u!1102 &3188460960225426455 AnimatorState: serializedVersion: 6 @@ -615,9 +571,7 @@ AnimatorState: m_Name: Attack m_Speed: 1 m_CycleOffset: 0 - m_Transitions: - - {fileID: 4658846137002246010} - - {fileID: 3032347272367370037} + m_Transitions: [] m_StateMachineBehaviours: - {fileID: 4517560952412984766} m_Position: {x: 50, y: 50, z: 0} @@ -676,7 +630,7 @@ AnimatorStateMachine: m_Position: {x: 630, y: 130, z: 0} - serializedVersion: 1 m_State: {fileID: 4602458092277031176} - m_Position: {x: 1070, y: 280, z: 0} + m_Position: {x: 1060, y: 280, z: 0} - serializedVersion: 1 m_State: {fileID: -4838633882212068965} m_Position: {x: 1060, y: 350, z: 0} @@ -685,17 +639,16 @@ AnimatorStateMachine: m_Position: {x: 490, y: 240, z: 0} - serializedVersion: 1 m_State: {fileID: -136569306282141652} - m_Position: {x: 760, y: 290, z: 0} + m_Position: {x: 1060, y: 220, z: 0} - serializedVersion: 1 m_State: {fileID: -7991831788900291451} - m_Position: {x: 760, y: 340, z: 0} + m_Position: {x: 1060, y: 410, z: 0} m_ChildStateMachines: [] - m_AnyStateTransitions: - - {fileID: -2848854086711600340} + m_AnyStateTransitions: [] m_EntryTransitions: [] m_StateMachineTransitions: {} m_StateMachineBehaviours: [] - m_AnyStatePosition: {x: 210, y: 250, z: 0} + m_AnyStatePosition: {x: 210, y: 240, z: 0} m_EntryPosition: {x: 20, y: 140, z: 0} m_ExitPosition: {x: 1000, y: 130, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} @@ -754,28 +707,6 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: ---- !u!1101 &4658846137002246010 -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: 6342953676309033787} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0.25 - m_TransitionOffset: 0 - m_ExitTime: 0.39999998 - m_HasExitTime: 1 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 --- !u!1102 &6342953676309033787 AnimatorState: serializedVersion: 6 From 5f69ad8e301f558083cd77c2dbffee446661c38b Mon Sep 17 00:00:00 2001 From: Mingu Kim Date: Sat, 8 Feb 2025 23:20:38 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=EB=AA=AC=EC=8A=A4=ED=84=B0=20=EA=B3=B5?= =?UTF-8?q?=EA=B2=A9=20=EC=88=98=EC=A0=95=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Personal Scenes/dev_mingu/Controller.cs | 8 +- .../Gameton/Scripts/GameData/MonsterData.cs | 34 +++++ .../Scripts/GameData/MonsterData.cs.meta | 11 ++ .../Scripts/GameData/MonsterSkillData.cs | 17 +++ .../Scripts/GameData/MonsterSkillData.cs.meta | 11 ++ .../Gameton/Scripts/Monster/MonsterBase.cs | 19 +-- .../Common/Animation/Controller.controller | 129 +++++++++++++----- 7 files changed, 179 insertions(+), 50 deletions(-) create mode 100644 Gameton-06/Assets/Gameton/Scripts/GameData/MonsterData.cs create mode 100644 Gameton-06/Assets/Gameton/Scripts/GameData/MonsterData.cs.meta create mode 100644 Gameton-06/Assets/Gameton/Scripts/GameData/MonsterSkillData.cs create mode 100644 Gameton-06/Assets/Gameton/Scripts/GameData/MonsterSkillData.cs.meta diff --git a/Gameton-06/Assets/Gameton/Scenes/Personal Scenes/dev_mingu/Controller.cs b/Gameton-06/Assets/Gameton/Scenes/Personal Scenes/dev_mingu/Controller.cs index 54302292..f5572b63 100644 --- a/Gameton-06/Assets/Gameton/Scenes/Personal Scenes/dev_mingu/Controller.cs +++ b/Gameton-06/Assets/Gameton/Scenes/Personal Scenes/dev_mingu/Controller.cs @@ -19,7 +19,7 @@ namespace TON private void Update() { - bool isMoving = false; + // bool isMoving = false; if (Input.GetKey(KeyCode.RightArrow)) { @@ -27,7 +27,7 @@ namespace TON position.x += 5.0f * Time.deltaTime; _cachedTransform.position = position; - isMoving = true; + // isMoving = true; _spriteRenderer.flipX = false; } @@ -37,7 +37,7 @@ namespace TON position.x -= 5.0f * Time.deltaTime; _cachedTransform.position = position; - isMoving = true; + // isMoving = true; _spriteRenderer.flipX = true; } @@ -47,7 +47,7 @@ namespace TON position.y += 10.0f * Time.deltaTime; _cachedTransform.position = position; - isMoving = true; + // isMoving = true; _spriteRenderer.flipX = true; } diff --git a/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterData.cs b/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterData.cs new file mode 100644 index 00000000..ca218398 --- /dev/null +++ b/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterData.cs @@ -0,0 +1,34 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace TON +{ + [System.Serializable] + public class MonsterData + { + // 몬스터 아이디 + public int id; + // 몬스터 명 or 프리팹 명? + public string name; + // 몬스터 타입 ex : melee, ranged + public string monsterType; + // 몬스터 체력 + public int hp; + + // 기본 공격력 + public int attackPower; + // 기본 방어력 + public int defensivePower; + + public MonsterData(int id, string monsterType, string name, int hp, int attackPower, int defensivePower) + { + id = this.id; + monsterType = this.monsterType == "monster" ? "melle" : "ranged"; + name = this.name; + hp = this.hp; + attackPower = this.attackPower; + defensivePower = this.defensivePower; + } + } +} diff --git a/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterData.cs.meta b/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterData.cs.meta new file mode 100644 index 00000000..ca79ef8c --- /dev/null +++ b/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3baf3e61ce1aff24b90ec264fa763bd0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterSkillData.cs b/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterSkillData.cs new file mode 100644 index 00000000..bc537c3a --- /dev/null +++ b/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterSkillData.cs @@ -0,0 +1,17 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace TON +{ + [System.Serializable] + + public class MonsterSkillData + { + public int id; // 몬스터 id + public string skillType; // 스킬 타입(공격, 근거리, 원거리) + public int damage; // 스킬 피해량 + public float coolTime; // 스킬 쿨타임 + public float skillRange; // 스킬 범위(콜라이더 조정) + } +} diff --git a/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterSkillData.cs.meta b/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterSkillData.cs.meta new file mode 100644 index 00000000..8aa39ef4 --- /dev/null +++ b/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterSkillData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 68285054ac94bb741b8b33e422a9e28c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs index 75233d79..02d335f8 100644 --- a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs +++ b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs @@ -14,7 +14,7 @@ namespace TON public int id; // 적 고유 ID public float currentHP = 100; // HP - public string name; // 몬스터 명 or 프리팹 명 + // public string name; // 몬스터 명 or 프리팹 명 public string monsterType; // 몬스터 타입 ex : melee, ranged @@ -68,12 +68,6 @@ namespace TON // todo : 충돌 했으면 attack 전환 (바로 그냥 공격하게 따라가지 말고) // todo : 시야를 벗어났으면 idle 전환 - if (_isDetect) - { - _animator.SetTrigger("Attack"); - _isWalking = false; - } - if (_isWalking) { // walking 상태에서 walkingTime을 초과할 경우 idle 애니메이션 재생 @@ -130,12 +124,12 @@ namespace TON if (prevHP > 0 && currentHP <= 0) { - _animator.SetBool("Die", true); // 몬스터 죽는 애니메이션 트리거 + // _animator.SetBool("Die", true); // 몬스터 죽는 애니메이션 트리거 Destroy(gameObject); // 몬스터 파괴 } else if (prevHP > 0 && currentHP > 0) { - _animator.SetBool("Hit", true); // 피격 애니메이션 + // _animator.SetBool("Hit", true); // 피격 애니메이션 } } @@ -160,6 +154,11 @@ namespace TON if (other.collider.CompareTag("Player")) { _isDetect = true; + _animator.SetTrigger("Attack"); + if (_isDetect) + { + _isWalking = false; + } MonsterAttack(other.gameObject); // 플레이어에게 공격 Debug.Log("감지됨"); } @@ -168,6 +167,8 @@ namespace TON private void OnCollisionExit2D(Collision2D other) { _isDetect = false; + + _isWalking = true; } } } diff --git a/Gameton-06/Assets/PixelFantasy/PixelMonsters/Common/Animation/Controller.controller b/Gameton-06/Assets/PixelFantasy/PixelMonsters/Common/Animation/Controller.controller index a38c7a2a..c46d5a78 100644 --- a/Gameton-06/Assets/PixelFantasy/PixelMonsters/Common/Animation/Controller.controller +++ b/Gameton-06/Assets/PixelFantasy/PixelMonsters/Common/Animation/Controller.controller @@ -1,5 +1,30 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1101 &-9185475322345085776 +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: Attack + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 3188460960225426455} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.7500001 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1101 &-8779183371588601510 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -531,6 +556,31 @@ AnimatorController: m_IKPass: 0 m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} +--- !u!1101 &2959070162634278488 +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: Walk + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -56690746207215259} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1107 &3007215386161293610 AnimatorStateMachine: serializedVersion: 6 @@ -571,7 +621,8 @@ AnimatorState: m_Name: Attack m_Speed: 1 m_CycleOffset: 0 - m_Transitions: [] + m_Transitions: + - {fileID: 6891052141285990821} m_StateMachineBehaviours: - {fileID: 4517560952412984766} m_Position: {x: 50, y: 50, z: 0} @@ -588,31 +639,6 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: ---- !u!1101 &3219202489512463615 -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: Walk - m_EventTreshold: 0 - m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: -56690746207215259} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0 - m_TransitionOffset: 0 - m_ExitTime: 0.75 - m_HasExitTime: 0 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 --- !u!1107 &3586348641808003577 AnimatorStateMachine: serializedVersion: 6 @@ -627,30 +653,31 @@ AnimatorStateMachine: m_Position: {x: 330, y: 130, z: 0} - serializedVersion: 1 m_State: {fileID: -56690746207215259} - m_Position: {x: 630, y: 130, z: 0} + m_Position: {x: 610, y: 130, z: 0} - serializedVersion: 1 m_State: {fileID: 4602458092277031176} - m_Position: {x: 1060, y: 280, z: 0} + m_Position: {x: 920, y: 190, z: 0} - serializedVersion: 1 m_State: {fileID: -4838633882212068965} - m_Position: {x: 1060, y: 350, z: 0} + m_Position: {x: 920, y: 260, z: 0} - serializedVersion: 1 m_State: {fileID: 3188460960225426455} - m_Position: {x: 490, y: 240, z: 0} + m_Position: {x: 330, y: 230, z: 0} - serializedVersion: 1 m_State: {fileID: -136569306282141652} - m_Position: {x: 1060, y: 220, z: 0} + m_Position: {x: 920, y: 130, z: 0} - serializedVersion: 1 m_State: {fileID: -7991831788900291451} - m_Position: {x: 1060, y: 410, z: 0} + m_Position: {x: 920, y: 320, z: 0} m_ChildStateMachines: [] - m_AnyStateTransitions: [] + m_AnyStateTransitions: + - {fileID: -9185475322345085776} m_EntryTransitions: [] m_StateMachineTransitions: {} m_StateMachineBehaviours: [] - m_AnyStatePosition: {x: 210, y: 240, z: 0} - m_EntryPosition: {x: 20, y: 140, z: 0} - m_ExitPosition: {x: 1000, y: 130, z: 0} + m_AnyStatePosition: {x: 30, y: 230, z: 0} + m_EntryPosition: {x: 30, y: 130, z: 0} + m_ExitPosition: {x: 30, y: 330, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: 6342953676309033787} --- !u!114 &4102650195156319639 @@ -718,7 +745,7 @@ AnimatorState: m_Speed: 1 m_CycleOffset: 0 m_Transitions: - - {fileID: 3219202489512463615} + - {fileID: 2959070162634278488} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -734,6 +761,34 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1101 &6891052141285990821 +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: Idle + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: Walk + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 6342953676309033787} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.4 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1101 &7048088606751916887 AnimatorStateTransition: m_ObjectHideFlags: 1 From 8a65bf7d3115e9f7af250bb486905500d1669082 Mon Sep 17 00:00:00 2001 From: Mingu Kim Date: Sun, 9 Feb 2025 00:10:28 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EB=AA=AC=EC=8A=A4=ED=84=B0=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EC=B2=98=EB=A6=AC=20=EC=A0=95=EB=A6=AC?= =?UTF-8?q?=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Gameton/Scripts/Monster/MonsterBase.cs | 9 +++ .../{GameData => Monster}/MonsterData.cs | 0 .../{GameData => Monster}/MonsterData.cs.meta | 0 .../Scripts/Monster/MonsterDataManager.cs | 79 +++++++++++++++++++ .../Monster/MonsterDataManager.cs.meta | 11 +++ .../{GameData => Monster}/MonsterSkillData.cs | 0 .../MonsterSkillData.cs.meta | 0 7 files changed, 99 insertions(+) rename Gameton-06/Assets/Gameton/Scripts/{GameData => Monster}/MonsterData.cs (100%) rename Gameton-06/Assets/Gameton/Scripts/{GameData => Monster}/MonsterData.cs.meta (100%) create mode 100644 Gameton-06/Assets/Gameton/Scripts/Monster/MonsterDataManager.cs create mode 100644 Gameton-06/Assets/Gameton/Scripts/Monster/MonsterDataManager.cs.meta rename Gameton-06/Assets/Gameton/Scripts/{GameData => Monster}/MonsterSkillData.cs (100%) rename Gameton-06/Assets/Gameton/Scripts/{GameData => Monster}/MonsterSkillData.cs.meta (100%) diff --git a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs index 02d335f8..6dbf6de4 100644 --- a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs +++ b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs @@ -59,6 +59,15 @@ namespace TON // TODO: 몬스터 방어력 임시값 defencePower = 10f; + + // // 몬스터 데이터 로드 + // MonsterData monsterData = MonsterDataManager.Instance.monsterDataDict[monsterID]; + // + // // 몬스터 데이터 적용 + // Debug.Log("몬스터 이름: " + monsterData.name); + // Debug.Log("공격력: " + monsterData.attackPower); + // Debug.Log("체력: " + monsterData.health); + // Debug.Log("속도: " + monsterData.speed); } // Update is called once per frame diff --git a/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterData.cs b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterData.cs similarity index 100% rename from Gameton-06/Assets/Gameton/Scripts/GameData/MonsterData.cs rename to Gameton-06/Assets/Gameton/Scripts/Monster/MonsterData.cs diff --git a/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterData.cs.meta b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterData.cs.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Scripts/GameData/MonsterData.cs.meta rename to Gameton-06/Assets/Gameton/Scripts/Monster/MonsterData.cs.meta diff --git a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterDataManager.cs b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterDataManager.cs new file mode 100644 index 00000000..aec499c1 --- /dev/null +++ b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterDataManager.cs @@ -0,0 +1,79 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace TON +{ + using System.Collections.Generic; + using System.IO; + using UnityEngine; + + public class MonsterDataManager : MonoBehaviour + { + public static MonsterDataManager Instance { get; private set; } + public Dictionary monsterDataDict = new Dictionary(); + + // void Awake() + // { + // if (Instance == null) + // { + // Instance = this; + // } + // else + // { + // Destroy(gameObject); + // return; + // } + // + // LoadMonsterData("monster_data.csv"); // CSV 파일 이름 + // } + + // void LoadMonsterData(string fileName) + // { + // List data = ReadCSV(fileName); + // + // // 첫 번째 행은 헤더이므로 건너뜀 + // for (int i = 1; i < data.Count; i++) + // { + // string[] row = data[i]; + // MonsterData monsterData = new MonsterData(); + // + // monsterData.id = int.Parse(row[0]); + // monsterData.name = row[1]; + // monsterData.attackPower = int.Parse(row[2]); + // monsterData.health = int.Parse(row[3]); + // monsterData.speed = float.Parse(row[4]); + // + // monsterDataDict.Add(monsterData.id, monsterData); + // } + // } + // + // List ReadCSV(string fileName) + // { + // List data = new List(); + // TextAsset textAsset = Resources.Load(fileName); // Resources 폴더에서 파일 로드 + // + // using (StringReader reader = new StringReader(textAsset.text)) + // { + // while (!reader.EndOfStream) + // { + // string line = reader.ReadLine(); + // string[] row = line.Split(','); + // data.Add(row); + // } + // } + // + // return data; + // } + } +} + +// 몬스터 데이터 클래스 +public class MonsterData +{ + public int id; + public string name; + public int attackPower; + public int health; + public float speed; +} \ No newline at end of file diff --git a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterDataManager.cs.meta b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterDataManager.cs.meta new file mode 100644 index 00000000..413bcc0d --- /dev/null +++ b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterDataManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 712b398b6e440d145ab6411f01a39478 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterSkillData.cs b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterSkillData.cs similarity index 100% rename from Gameton-06/Assets/Gameton/Scripts/GameData/MonsterSkillData.cs rename to Gameton-06/Assets/Gameton/Scripts/Monster/MonsterSkillData.cs diff --git a/Gameton-06/Assets/Gameton/Scripts/GameData/MonsterSkillData.cs.meta b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterSkillData.cs.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Scripts/GameData/MonsterSkillData.cs.meta rename to Gameton-06/Assets/Gameton/Scripts/Monster/MonsterSkillData.cs.meta