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(); _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; _miniPlayer.style.top = _minimapContainer.layout.height * (1-point.y) - _miniPlayer.layout.height / 2; } } }