Я, будучи профаном в области Mathf и т.п. не очень понимал ответы, которые мне писали, кстати всем спасибо, вы поставили мне цель. И вот, с помощью своей криворукости и скорее всего единственного видео на youtube связанного с подобными маркерами, я накалял такую вот дичь
Код
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 = 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)
{
Vector3 parentPos = transform.position;
parentPos.y = offset_y;
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;
}
}
}
Все вроде работает, когда маркер уходит за радиус карты, он не пропадает, но когда перс начинает к нему приближаться, а тот еще не в радиусе, маркер начинает дергаться, как это решить? Спасибо!