50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
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;
|
|
_miniPlayer.style.top = _minimapContainer.layout.height * (1-point.y) - _miniPlayer.layout.height / 2;
|
|
}
|
|
}
|
|
|
|
}
|
|
|