41 lines
1.2 KiB
C#
41 lines
1.2 KiB
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()
|
|
{
|
|
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;
|
|
}
|
|
} |