这个是比较常用的也是简单的一种代码实现
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Map : MonoBehaviour
{
public Transform poinA;
public Transform poinB;
public Transform Player;//大地图人物
public RectTransform LittleMapImage;//小地图
public RectTransform LittlePlayerImage;//小地图人物
//大地图宽高
float MapWidth;
float MapHigter;
void Start()
{
//大地图长宽
MapWidth = Mathf.Abs(poinA.transform.position.x - poinB.transform.position.x);
MapHigter = Mathf.Abs(poinA.transform.position.z - poinB.transform.position.z);
//MapWidth = Mathf.Abs(poinA.transform.position.x - poinB.transform.position.x);
//MapHigter = Mathf.Abs(poinA.transform.position.z - poinB.transform.position.z);
}
void Update()
{
//人物相对大地图长宽
float playerMapWidth = Mathf.Abs(Player.position.x - poinA.transform.position.x);
float playerMapHigter = Mathf.Abs(Player.position.z - poinB.transform.position.z);
//所占比例
float x = playerMapWidth / MapWidth;
float z = playerMapHigter / MapHigter;
//人物相对小地图长宽
float cubeWidth = LittleMapImage.rect.width * x;
float cubeheight = LittleMapImage.rect.height * z;
//更改小地图人物位置
LittlePlayerImage.localPosition = new Vector2(cubeWidth, cubeheight);
}
}