Unity制作moba游戏小地图,在小地图上拖拽查看相应位置

制作一个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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值