制作一个moba 游戏的小地图
首先创建如下图所示画布结构
并做相应参数设置
接下来就是代码环节
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// This script should be attached to the minimap RawImage.
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class SmallMap2 : MonoBehaviour, IPointerDownHandler, IDragHandler
{
//小地图场景图
Transform mipMapImage;
//小地图中的人物位置
Transform playerImage;
//场景中人物的位置
Transform playerTrans;
//地形
Terrain terrain;
//小地图的尺寸
Vector2 mipMapSize;
//等比例映射后角色在小地图的位置
Vector2 position;
//人物相对于地形的坐标
Vector3 localPos;
float rateX, rateY, posX, posY;
[SerializeField] Camera M_Camera;
[SerializeField] Camera minimapCamera;
Camera M_Camera_comp;
void Start()
{
M_Camera_comp = M_Camera.GetComponent<Camera>();
mipMapImage = GameObject.Find("MapImage").transform;
playerImage = GameObject.Find("Playerimg").transform;
playerTrans = GameObject.FindWithTag("Player").transform;
terrain = GameObject.Find("002Terrain").GetComponent<Terrain>();
mipMapSize = mipMapImage.GetComponent<RectTransform>().sizeDelta;
}
// focus camera to where we click on minimap聚焦相机到我们点击小地图的地方
public void OnPointerDown(PointerEventData d)
{
var player = Utils.ClientLocalPlayer();
if (!player) return;
// get mouse position获取鼠标位置
var mouse = Input.mousePosition;
// get corners in world coordinates (botleft, topleft, topright, botright)
//在世界坐标中获得角球(BOT左,左上,右,BOT右)
var corners = new V