Net.Like.Xue.Tokyo/Assets/Artists/Scripts/UX/UXMap.cs

50 lines
1.5 KiB
C#
Raw Normal View History

2024-11-03 16:42:23 +08:00
using System.Collections;
using System.Collections.Generic;
using BITKit.UX;
using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.UIElements;
namespace Net.Like.Xue.Tokyo.UX
{
public class UXMap : UIToolKitPanel
{
public UXMap(IUXService uxService) : base(uxService)
{
}
protected override string DocumentPath => "ux_map";
public override bool CloseWhenClickOutside => true;
[UXBindPath("minimap-container")]
private VisualElement _minimapContainer;
[UXBindPath("minimap-player")]
private VisualElement _miniPlayer;
private Camera _minimapCamera;
private Camera _mainCamera;
public override async UniTask EntryAsync()
{
await base.EntryAsync();
UXUtils.Inject(this);
_minimapCamera = GameObject.Find("minimap_camera").GetComponent<Camera>();
_mainCamera = Camera.main;
}
public override void OnTick(float deltaTime)
{
base.OnTick(deltaTime);
if(RootVisualElement is null)return;
var point = _minimapCamera.WorldToViewportPoint(_mainCamera.transform.position);
_miniPlayer.style.left = _minimapContainer.layout.width * point.x - _miniPlayer.layout.width / 2;
2024-11-13 17:47:45 +08:00
_miniPlayer.style.top = _minimapContainer.layout.height * (1-point.y) - _miniPlayer.layout.height / 2;
2024-11-03 16:42:23 +08:00
}
}
}