Загрузка данных


using UnityEngine;
using UnityEngine.UI;

public class NavigationArrow : MonoBehaviour
{
    [SerializeField] RoutineManager routeManager;
    [SerializeField] Transform player; // Transform игрока
    [SerializeField] RectTransform arrowRect;
    [SerializeField] Image arrowImage;


    void Start()
    {
        if (arrowImage == null)
            arrowImage = GetComponent<Image>();
        if (arrowRect == null)
            arrowRect = GetComponent<RectTransform>();
    }

    void Update()
    {
        if (routeManager == null || routeManager.CurrentTarget == null)
        {
            //arrowImage.enabled = false;
            return;
        }

        arrowImage.enabled = true;
        UpdateArrowDirection();
    }

    void UpdateArrowDirection()
    {
        Vector3 targetPosition = routeManager.CurrentTarget.position;
        Debug.Log(routeManager.CurrentTarget.name);
        // получаем направление от игрока к цели
        Vector3 directionToTarget = targetPosition - player.position;

        // игнорируем высоту (Y) для 2D направления
        directionToTarget.y = 0;


        // вычисляем угол между направлением игрока и направлением к цели
        float angle = Vector3.SignedAngle(Vector3.right, directionToTarget, Vector3.up);

        // поворачиваем стрелку
        arrowRect.rotation = Quaternion.Euler(0, 0, -angle);

        Debug.DrawRay(player.position, directionToTarget.normalized * 5, Color.red);
    }
}