47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
using UnityEngine;
|
|
using UnityEngine.AI;
|
|
|
|
public class Unit : MonoBehaviour
|
|
{
|
|
[Header("Components")]
|
|
public GameObject selectionVisual;
|
|
private NavMeshAgent navAgent;
|
|
private SelectionMarker selectionMarker;
|
|
|
|
void Awake()
|
|
{
|
|
//get the components
|
|
navAgent = GetComponent<NavMeshAgent>();
|
|
}
|
|
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
|
void Start()
|
|
{
|
|
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
if (selectionMarker != null && !navAgent.pathPending && navAgent.remainingDistance <= navAgent.stoppingDistance)
|
|
{
|
|
selectionMarker.DestroySelectionMarker();
|
|
selectionMarker = null;
|
|
}
|
|
}
|
|
public void ToggleSelectionVisual(bool selected)
|
|
{
|
|
selectionVisual.SetActive(selected);
|
|
}
|
|
public void MoveToPosition(Vector3 pos, SelectionMarker marker = null)
|
|
{
|
|
if (selectionMarker != null)
|
|
{
|
|
selectionMarker.DestroySelectionMarker();
|
|
selectionMarker = null;
|
|
}
|
|
navAgent.isStopped = false;
|
|
navAgent.SetDestination(pos);
|
|
selectionMarker = marker;
|
|
}
|
|
}
|