using UnityEngine; using UnityEngine.UI; using UnityEngine.AI; public class NavigationPointController : MonoBehaviour { public Transform target; // Cel do śledzenia public GameObject targetIconPrefab; // Prefab obiektu 3D z ikoną celu private GameObject targetIcon; private Text distanceText; private NavMeshAgent navMeshAgent; void Start() { // Tworzymy ikonę celu (billboard) if (targetIconPrefab != null) { targetIcon = Instantiate(targetIconPrefab, transform.position, Quaternion.identity); targetIcon.transform.SetParent(transform); // Ustawiamy ikonę jako dziecko tego GameObjectu } // Pobieramy komponenty Text i NavMeshAgent z tego GameObjectu distanceText = GetComponentInChildren(); navMeshAgent = GetComponent(); // Ustawiamy cel na podstawie transformacji podanego obiektu if (target != null) { navMeshAgent.SetDestination(target.position); } } void Update() { if (target == null) return; // Obliczamy odległość do celu float distance = Vector3.Distance(transform.position, target.position); // Aktualizujemy tekst odległości distanceText.text = $"Distance to target: {distance:F2} meters"; // Obracamy ikonę celu w stronę kamery (jeśli ikona jest obiektem 3D z billboardem) if (targetIcon != null) { Vector3 direction = (target.position - transform.position).normalized; targetIcon.transform.forward = direction; } } }