Как вы все знаете, во многих играх есть миникарта, также она является неотъемлемой частью серии игр Grand Theft Auto начиная с 3 части. Я делаю свою игру в жанре "типа гташка". Но путь мне перегородил баг маркера миникарты. Сам маркер как-бы движется за игроком на определенном расстоянии, и таким образом он рисуется на границе миникарты, но когда ГГ начинает приближаться к маркеру он начинает быстро перемещаться то в свою начальную точку, то в заданное расстояние, тем самым дергаясь. Вот его скрипт:Код
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Marker : MonoBehaviour {
    [SerializeField] float SizeMultiplier;
    [SerializeField] float offset_y = 7.5f;
    [SerializeField] float MapDistance;
    [SerializeField] float MapRMultiplier;
    [SerializeField] Sprite S_norm;
    [SerializeField] Sprite S_Arrow;
    Vector3 StartPos;
    float x;
    float z;
    float r;
    float fi;
    float R;
    public Camera map_camera;
    public Transform target;
    public RenderTexture render_texture_rect;
    public Material minimap;
    public Sprite marker;
    void Start()
    {
        StartPos = this.transform.position;
    }
    void FixedUpdate ()
    {       
        R = render_texture_rect.width * map_camera.orthographicSize * MapRMultiplier;
        x = transform.position.x - target.position.x;
        z = transform.position.z - target.position.z;
        r = Mathf.Sqrt(Mathf.Pow(x, 2)+Mathf.Pow(z, 2));
        fi = Mathf.Atan2(z, x);
        if (r < R)
        {
            transform.position = StartPos;
            minimap.mainTexture = marker.texture;
        }else if (r >= R)
        {
            transform.position = new Vector3(R * MapDistance * Mathf.Cos(fi) + target.position.x, offset_y, R * MapDistance * Mathf.Sin(fi) + target.position.z);
            minimap.mainTexture = marker.texture;
        }
    }
}
Заранее спасибо!