GameDev.CoreSystems/Scripts/Targetable.cs

34 lines
1010 B
C#

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()
{
_activeTargetableRuntimeSet._list.Add(this);
}
private void OnDisable()
{
_activeTargetableRuntimeSet._list.Remove(this);
}
public Vector3 GetCenterPosition() => _centerPosition.transform.position;
public Vector3 GetBasePosition() => _basePosition.transform.position;
}
}