Files
OnlyNPC/Assets/FPS/Scripts/UI/CompassMarker.cs

58 lines
1.5 KiB
C#
Raw Permalink Normal View History

2026-05-26 09:46:57 +07:00
using Unity.FPS.AI;
using UnityEngine;
using UnityEngine.UI;
namespace Unity.FPS.UI
{
public class CompassMarker : MonoBehaviour
{
[Tooltip("Main marker image")] public Image MainImage;
[Tooltip("Canvas group for the marker")]
public CanvasGroup CanvasGroup;
[Header("Enemy element")] [Tooltip("Default color for the marker")]
public Color DefaultColor;
[Tooltip("Alternative color for the marker")]
public Color AltColor;
[Header("Direction element")] [Tooltip("Use this marker as a magnetic direction")]
public bool IsDirection;
[Tooltip("Text content for the direction")]
public TMPro.TextMeshProUGUI TextContent;
EnemyController m_EnemyController;
public void Initialize(CompassElement compassElement, string textDirection)
{
if (IsDirection && TextContent)
{
TextContent.text = textDirection;
}
else
{
m_EnemyController = compassElement.transform.GetComponent<EnemyController>();
if (m_EnemyController)
{
m_EnemyController.onDetectedTarget += DetectTarget;
m_EnemyController.onLostTarget += LostTarget;
LostTarget();
}
}
}
public void DetectTarget()
{
MainImage.color = AltColor;
}
public void LostTarget()
{
MainImage.color = DefaultColor;
}
}
}