using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
/*
*
* 控制右上角小地图的操作
*/
public class MapShow : MonoBehaviour
{
public GameObject PlayerBall;//定位玩家位置的毬
public GameObject player;
[Header("小地图/大地图")]
public GameObject Map;
public GameObject Map_B;
[Header("展开/隐藏地图的按钮")]
public Button MapBTN;
public Button Map_B_Open;
public Button Map_B_Close;
//这个要根据分辨率修改
private readonly Vector2 ScreenPos = new Vector2(1920, 1080);
public bool IsShowing;//是否打开地图的状态
[Header("传送点")] public Button[] ClickPoint;
public GameObject[] JumpToTarget;
private void Awake()
{
#region 监听
MapBTN.onClick.AddListener(() =>
{
if (IsShowing)
{//这个根据锚点与自身的相对方向要调整一下
Map.transform.DOMove(new Vector3(1135f+ScreenPos.x/2, 308.8f+ScreenPos.y/2, 0), 2f);
}
else
{
Map.transform.DOMove(new Vector3(786f+ScreenPos.x/2, 308.8f+ScreenPos.y/2, 0), 2f);
}
MapBTN.transform.Rotate(new Vector3(0,0,180f));
IsShowing = !IsShowing;
});
Map_B_Open.onClick.AddListener(() =>
{
Map_B.SetActive(true);
});
Map_B_Close.onClick.AddListener(() =>
{
Map_B.SetActive(false);
});
#endregion
for (int i = 0; i < JumpToTarget.Length-1; i++)
{
int i1 = i;
ClickPoint[i1].onClick.AddListener(()=>player.transform.position=JumpToTarget[i1].transform.position);
}
}
private void Update()
{
PlayerBall.transform.position = new Vector3(player.transform.position.x, -23f, transform.position.z);
}
}
效果:
(点击蓝色点可以传送)