powerfun-unity/Assets/Scenes/Ride/Scripts/MiniMapPlayerController.cs
lishuo eb70ee4397 细节调整
线路材质&位置调整,海拔图区间优化,loading动画只执行一次问题解决,小地图的球替换成圆形图片
2021-05-14 16:11:22 +08:00

43 lines
1.6 KiB
C#

using Mapbox.Unity.Map;
using UnityEngine;
namespace Assets.Scenes.Ride.Scripts
{
public class MiniMapPlayerController: MonoBehaviour
{
private AbstractPlayer _player;
private AbstractMap _map;
RectTransform RectRoot;
GameObject arrow;
Camera _minicamera;
private void Awake()
{
_map = transform.parent.Find("MiniMap").GetComponent<AbstractMap>();
_minicamera = transform.parent.Find("MiniCamera").GetComponent<Camera>();
RectRoot = transform.parent.Find("SingleUI/Panel/MiniMap/MiniMap").GetComponent<RectTransform>();
var parent = transform.parent.Find("SingleUI/Panel/MiniMap/MiniMap");
arrow = Instantiate(Resources.Load<GameObject>("UI/Prefab/Ride/MiniArrow"), parent);
}
public void SetController(AbstractPlayer player)
{
_player = player;
}
float t = 1f;
private void Update()
{
t -= Time.deltaTime;
while (t < 0)
{
if (_player != null)
{
transform.localPosition = _map.GeoToWorldPosition(_player.Currentlatlong);
var tr = arrow.GetComponent<RectTransform>();
Vector2 vp2 = _minicamera.WorldToViewportPoint(transform.localPosition);//将三维物体的世界坐标转换为视口坐标
tr.anchoredPosition = new Vector2((vp2.x * RectRoot.sizeDelta.x) - (RectRoot.sizeDelta.x * 0.5f), (vp2.y * RectRoot.sizeDelta.y) - (RectRoot.sizeDelta.y * 0.5f));
}
t = 1;
}
}
}
}