using UnityEngine; namespace GameDev.CoreSystems { public class Targetable : MonoBehaviour, ITargetable { [Header("RuntimeSet")] [SerializeField] private SoTargetableRuntimeSet _activeTargetableRuntimeSet; [field: Header("Connections")] [field: SerializeField] public Damageable Damageable { get; set; } [Header("TargetPositions")] [SerializeField] private Transform _centerPosition; [SerializeField] private Transform _basePosition; [field: Header("Collider")] [field: SerializeField] public Collider Collider { get; private set; } private void OnEnable() { if (_activeTargetableRuntimeSet != null) { _activeTargetableRuntimeSet.Add(this); } else { Debug.LogError("TargetableRuntimeSet does not exist"); } } private void OnDisable() { _activeTargetableRuntimeSet.Remove(this); } public Vector3 GetCenterPosition() => _centerPosition.transform.position; public Vector3 GetBasePosition() => _basePosition.transform.position; } }