From 78791649aee5b714950e3958c16781b94abc08e5 Mon Sep 17 00:00:00 2001 From: dal4segno Date: Sun, 1 Feb 2026 19:09:39 +0900 Subject: [PATCH] =?UTF-8?q?=ED=83=80=EC=9B=8C=20=EC=9E=90=EB=8F=99=20?= =?UTF-8?q?=EA=B3=B5=EA=B2=A9=20=EC=8B=9C=EC=8A=A4=ED=85=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 이전 타워 수정의 사이드 이펙트 미사용 SO 제거 --- .../ScriptableObjects/Tower/Tower001.asset | 25 ------------ .../Tower/Tower001.asset.meta | 8 ---- .../ScriptableObjects/Tower/Tower002.asset | 25 ------------ .../Tower/Tower002.asset.meta | 8 ---- Assets/Data/Templates/TowerTemplate.prefab | 18 +++++++++ Assets/Prefabs/Tower/Tower1.prefab | 18 +++++++++ Assets/Prefabs/Tower/Tower2.prefab | 18 +++++++++ Assets/Scripts/AutoTargetSystem.cs | 40 ++++++++++--------- 8 files changed, 75 insertions(+), 85 deletions(-) delete mode 100644 Assets/Data/ScriptableObjects/Tower/Tower001.asset delete mode 100644 Assets/Data/ScriptableObjects/Tower/Tower001.asset.meta delete mode 100644 Assets/Data/ScriptableObjects/Tower/Tower002.asset delete mode 100644 Assets/Data/ScriptableObjects/Tower/Tower002.asset.meta diff --git a/Assets/Data/ScriptableObjects/Tower/Tower001.asset b/Assets/Data/ScriptableObjects/Tower/Tower001.asset deleted file mode 100644 index 9a57d8f..0000000 --- a/Assets/Data/ScriptableObjects/Tower/Tower001.asset +++ /dev/null @@ -1,25 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - 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: 8c40fef5ebc37b743a3f225c1ca57c32, type: 3} - m_Name: Tower001 - m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.TowerData - id: 1 - memo: "\uD0C0\uC6CC" - mana: 25 - manpower: 10 - sizeX: 3 - sizeY: 3 - maxHp: 50 - atkRange: 10 - atkDamage: 5 - atkIntervalSec: 2 - prefabPath: Assets/Prefabs/TowerArrow diff --git a/Assets/Data/ScriptableObjects/Tower/Tower001.asset.meta b/Assets/Data/ScriptableObjects/Tower/Tower001.asset.meta deleted file mode 100644 index 27b4814..0000000 --- a/Assets/Data/ScriptableObjects/Tower/Tower001.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d75326370af2a2840958aae74db56dee -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Data/ScriptableObjects/Tower/Tower002.asset b/Assets/Data/ScriptableObjects/Tower/Tower002.asset deleted file mode 100644 index 43a884b..0000000 --- a/Assets/Data/ScriptableObjects/Tower/Tower002.asset +++ /dev/null @@ -1,25 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - 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: 8c40fef5ebc37b743a3f225c1ca57c32, type: 3} - m_Name: Tower002 - m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.TowerData - id: 2 - memo: "\uBCBD" - mana: 5 - manpower: 5 - sizeX: 1 - sizeY: 1 - maxHp: 30 - atkRange: 0 - atkDamage: 0 - atkIntervalSec: 0 - prefabPath: Assets/Prefabs/Wall diff --git a/Assets/Data/ScriptableObjects/Tower/Tower002.asset.meta b/Assets/Data/ScriptableObjects/Tower/Tower002.asset.meta deleted file mode 100644 index 66d4fdb..0000000 --- a/Assets/Data/ScriptableObjects/Tower/Tower002.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: df145fdd58f30464eb4eb02cfbfb280d -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Data/Templates/TowerTemplate.prefab b/Assets/Data/Templates/TowerTemplate.prefab index 5c079e2..1134ce5 100644 --- a/Assets/Data/Templates/TowerTemplate.prefab +++ b/Assets/Data/Templates/TowerTemplate.prefab @@ -14,6 +14,7 @@ GameObject: - component: {fileID: 8546144977850478548} - component: {fileID: -4086363217010332088} - component: {fileID: 4822792797652874450} + - component: {fileID: -6756709031183627887} m_Layer: 0 m_Name: TowerTemplate m_TagString: Untagged @@ -144,3 +145,20 @@ MonoBehaviour: minHeightForDistantVisibility: 3 useExploredMaterial: 0 exploredMaterial: {fileID: 0} +--- !u!114 &-6756709031183627887 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7169488976654481418} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8dd1c341faa09554aa2bc35164888453, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Northbound.AutoTargetSystem + ShowTopMostFoldoutHeaderGroup: 1 + targetLayer: + serializedVersion: 2 + m_Bits: 2304 + showDebugInfo: 1 diff --git a/Assets/Prefabs/Tower/Tower1.prefab b/Assets/Prefabs/Tower/Tower1.prefab index 4ec5c20..3c7b438 100644 --- a/Assets/Prefabs/Tower/Tower1.prefab +++ b/Assets/Prefabs/Tower/Tower1.prefab @@ -195,6 +195,7 @@ GameObject: - component: {fileID: 100877884298911200} - component: {fileID: 8485093670801034058} - component: {fileID: 7262612124217315611} + - component: {fileID: 2379635900458054490} m_Layer: 0 m_Name: Tower1 m_TagString: Untagged @@ -326,3 +327,20 @@ MonoBehaviour: minHeightForDistantVisibility: 3 useExploredMaterial: 0 exploredMaterial: {fileID: 0} +--- !u!114 &2379635900458054490 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8512676738329978770} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8dd1c341faa09554aa2bc35164888453, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Northbound.AutoTargetSystem + ShowTopMostFoldoutHeaderGroup: 1 + targetLayer: + serializedVersion: 2 + m_Bits: 2304 + showDebugInfo: 1 diff --git a/Assets/Prefabs/Tower/Tower2.prefab b/Assets/Prefabs/Tower/Tower2.prefab index c447c82..ccd4f3d 100644 --- a/Assets/Prefabs/Tower/Tower2.prefab +++ b/Assets/Prefabs/Tower/Tower2.prefab @@ -14,6 +14,7 @@ GameObject: - component: {fileID: 2615519446934682856} - component: {fileID: 3203720634638459019} - component: {fileID: 3906797260079127802} + - component: {fileID: 7538736331158383620} m_Layer: 0 m_Name: Tower2 m_TagString: Untagged @@ -145,6 +146,23 @@ MonoBehaviour: minHeightForDistantVisibility: 3 useExploredMaterial: 0 exploredMaterial: {fileID: 0} +--- !u!114 &7538736331158383620 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3671057791414486316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8dd1c341faa09554aa2bc35164888453, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Northbound.AutoTargetSystem + ShowTopMostFoldoutHeaderGroup: 1 + targetLayer: + serializedVersion: 2 + m_Bits: 2304 + showDebugInfo: 1 --- !u!1 &8947776510381915047 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/AutoTargetSystem.cs b/Assets/Scripts/AutoTargetSystem.cs index dccb706..7b07161 100644 --- a/Assets/Scripts/AutoTargetSystem.cs +++ b/Assets/Scripts/AutoTargetSystem.cs @@ -9,33 +9,27 @@ namespace Northbound public class AutoTargetSystem : NetworkBehaviour { [Header("Targeting")] - [Tooltip("적을 감지하는 범위")] - public float detectionRange = 15f; - - [Tooltip("공격 가능한 범위")] - public float attackRange = 10f; - - [Tooltip("공격 간격 (초)")] - public float attackInterval = 1f; - [Tooltip("탐지할 레이어")] public LayerMask targetLayer = ~0; - [Header("Combat")] - [Tooltip("공격 데미지")] - public int attackDamage = 10; - [Header("Debug")] [Tooltip("디버그 정보 표시")] public bool showDebugInfo = true; + private Building _building; private ITeamMember _teamMember; private float _lastAttackTime; private void Awake() { + _building = GetComponent(); _teamMember = GetComponent(); + if (_building == null) + { + Debug.LogError($"[AutoTargetSystem] {gameObject.name}에 Building 컴포넌트가 없습니다!"); + } + if (_teamMember == null) { Debug.LogError($"[AutoTargetSystem] {gameObject.name}에 ITeamMember 컴포넌트가 없습니다!"); @@ -45,9 +39,9 @@ namespace Northbound private void Update() { if (!IsServer) return; - if (_teamMember == null) return; + if (_building == null || _teamMember == null) return; - if (Time.time - _lastAttackTime >= attackInterval) + if (Time.time - _lastAttackTime >= _building.buildingData.atkIntervalSec) { FindAndAttackEnemy(); } @@ -55,6 +49,10 @@ namespace Northbound private void FindAndAttackEnemy() { + float detectionRange = _building.buildingData.atkRange; + float attackRange = _building.buildingData.atkRange; + int attackDamage = _building.buildingData.atkDamage; + // 범위 내 모든 콜라이더 탐지 Collider[] colliders = Physics.OverlapSphere(transform.position, detectionRange, targetLayer); @@ -152,13 +150,17 @@ namespace Northbound private void OnDrawGizmos() { + if (_building == null || _building.buildingData == null) return; + + float range = _building.buildingData.atkRange; + // 탐지 범위 (노란색) Gizmos.color = Color.yellow; - Gizmos.DrawWireSphere(transform.position, detectionRange); + Gizmos.DrawWireSphere(transform.position, range); // 공격 범위 (빨간색) Gizmos.color = Color.red; - Gizmos.DrawWireSphere(transform.position, attackRange); + Gizmos.DrawWireSphere(transform.position, range); } private void OnDrawGizmosSelected() @@ -166,10 +168,10 @@ namespace Northbound OnDrawGizmos(); #if UNITY_EDITOR - if (_teamMember != null && Application.isPlaying) + if (_teamMember != null && _building != null && _building.buildingData != null && Application.isPlaying) { UnityEditor.Handles.Label(transform.position + Vector3.up * 3f, - $"Auto Target\nTeam: {TeamManager.GetTeamName(_teamMember.GetTeam())}\nDetection: {detectionRange}m\nAttack: {attackRange}m"); + $"Auto Target\nTeam: {TeamManager.GetTeamName(_teamMember.GetTeam())}\nRange: {_building.buildingData.atkRange}m\nDamage: {_building.buildingData.atkDamage}"); } #endif }