等比小地图PlayerIcon显示的坐标
核心两行:
1. 角色等比= 角色坐标 / 地形大小
2. 角色在小地图中的位置 = UImap地图大小(UI的大小) * 角色等比 + UI锚点偏移

小地图标点在地图生成相对坐标(类似于永劫无间标记出生点、吃鸡标记目标地、LOL小地图标记信号给队友)
核心三行:
1. 鼠标点击位置屏幕坐标转换UI坐标,在小地图的位置生成标记点
2. 标记点icon等比= 拿到标记点位置减去偏移/小地图UI大小
3. 标记点在场景大地图位置=地图大小*标记点icon等比

public class Map : MonoBehaviour, IPointerClickHandler
{/// <summary>/// 角色/// </summary>public Transform player;/// <summary>/// 地图标记/// </summary>public Transform Marker;/// <summary>/// 地形/// </summary>public MeshRenderer Terrain;/// <summary>/// 小地图/// </summary>public RectTransform UIMap;/// <summary>/// 小地图上的角色图标/// </summary>public RectTransform palyerIcon;/// <summary>/// 小地图上标记图标/// </summary>public RectTransform MarkerIcon;Vector3 tmpAngle;Vector2 tmpPos = Vector2.zero;void Update(){UpdatePos();}/// <summary>/// 等比小地图更新角色位子/// </summary>void UpdatePos(){//角色X坐标/以地形长=人物在地形中的等比长float widthRate = player.transform.position.x / Terrain.bounds.size.x;//角色Z坐标/以地形宽=人物在地形中的等比宽float heightRate = player.transform.position.z / Terrain.bounds.size.z;//小地图大小*人物在地形中的等比+小地图锚点偏移量(我的小地图大小是256*256,固定在左上,偏移后的坐标0,0点刚好在小地图的中心点)tmpPos.x = UIMap.sizeDelta.x * widthRate + 128;tmpPos.y = UIMap.sizeDelta.y * heightRate + -128;//计算出来的等比位置赋值给角色的iconpalyerIcon.localPosition = tmpPos;//拿到角色icon的旋转tmpAngle = palyerIcon.localEulerAngles;//把角色的旋转y轴给UI的ztmpAngle.z = player.localEulerAngles.y;//修改好的旋转赋值给iconpalyerIcon.localEulerAngles = tmpAngle;}/// <summary>/// 地图上标记出生点、目标点在/// </summary>void UpdateMarkerPos(){        //类似于吃鸡中地图标点,永劫无间标记出生点//标记点跟计算角色小地图一样只不过是反推//(标记点的坐标-偏移)/小地图大小=得到等比float widthRate = (MarkerIcon.localPosition.x - 128) / UIMap.sizeDelta.x;float heightRate = (MarkerIcon.localPosition.y - -128) / UIMap.sizeDelta.y;//等比放大地图大小的倍数就是在场景地形的那位子float x = Terrain.bounds.size.x * widthRate;float z = Terrain.bounds.size.z * heightRate;//把这个位子给到标记物体Marker.transform.position = new Vector3(x, 0.5f, z);// Instantiate(player, new Vector3(x, 0.5f, y), Quaternion.identity);}public void OnPointerClick(PointerEventData eventData){//鼠标左键按下地图上生成标记点if (eventData.pointerEnter.name == "Map"){Vector2 outVec;//屏幕左边转换UI坐标if (RectTransformUtility.ScreenPointToLocalPointInRectangle(UIMap, Input.mousePosition, null, out outVec)){Debug.Log("转换后的屏幕坐标: " + outVec);MarkerIcon.localPosition = outVec;}}
}

Unity 制作等比小地图并在小地图上标记出生点(类似于永劫无间、绝地求生、LoL小地图标记信号给队友)相关推荐

  1. Unity 制作小地图(Minimap)系统 两种方法

    Unity 制作小地图系统 两种方法 参考官方教程:Creating A Minimap System 方法1:Github:TanksPluggableAI 方法2:Github:GentleTan ...

  2. Unity 制作小地图

    原文地址:http://forum.china.unity3d.com/thread-17192-1-1.html 小地图的基本概念 众所周知,小地图(或雷达)是用于显示周围环境信息的.首先,小地图是 ...

  3. unity制作GTA5(二)—— 添加地形、小地图、布娃娃系统

    1.添加地形 导入Asset Store里Japanese Otaku City的PQ_Remake_AKIHABARA的预制件 为Block添加碰撞体,并且关闭cast shadow. 2.添加小地 ...

  4. Unity制作2D动作平台游戏视频教程

    Metroidvania工具包:打造统一的2D行动平台 流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确 ...

  5. Unity制作游戏中的场景

    Unity制作游戏中的场景 1.2.3  场景 在Unity中,场景(Scene)就是游戏开发者制作游戏时,所使用的游戏场景.它是一个三维空间,对应的三维坐标轴分别是X轴.Y轴和Z轴本文选自Unity ...

  6. arkit unity_凯蒂猫! 如何使用ARKit和Unity制作增强现实应用程序。

    arkit unity by Francesco Pallotta 由Francesco Pallotta 凯蒂猫! 如何使用ARKit和Unity制作增强现实应用程序. (Hello, Kitty! ...

  7. unity 制作书本 翻页效果

    unity 制作书籍翻页效果 unity C# 翻书效果 2D 真实翻页 不使用插件 自制 实现思路: 将书本分为两边,一边一个翻页实现: 下图为书本的右面,以OA为分界线,△OAB是下一面的如上图的 ...

  8. Unity 制作简单的任务动画

    Unity 制作简单的任务动画 1.添加人物模型到unity 我使用的是unity store中的免费模型: https://assetstore.unity.com/packages/3d/char ...

  9. Unity 制作萌系live2d桌宠:屏幕自适应+交互

    目录 准备工作 使用unity显示live2d人物 全屏+背景透明+点击穿透+置顶 屏幕自适应 交互 本文在之前的博客如何使用unity制作萌萌的live2d桌宠的基础上对项目继续改进,解决了屏幕自适 ...

最新文章

  1. redis主从复制原理、断点续传、无磁盘化复制、过期key处理
  2. 30多年程序员生涯经验总结(成功源自于失败中的学习;失败则是因为容忍错误的横行)...
  3. 一个故事 让你看懂“区块链”
  4. deprecated_使用Java的@Deprecated前瞻
  5. hapi 获取 请求地址 url
  6. C#LeetCode刷题之#167-两数之和 II - 输入有序数组(Two Sum II - Input array is sorted)
  7. 数字图像处理(一)——彩色图像基础
  8. 提高MySQL性能的方法
  9. QQ超市模拟排配2D版1.14 (XNA4.0) (增加截图功能、新建地图功能)
  10. css 设置overflow:scroll 滚动条的样式
  11. AngularJS-源码阅读(八.二)
  12. mockjs的介绍、基本使用和封装
  13. android 原理 组合控件_Android自定义控件之组合控件
  14. 雅黑PHP探针Light,雅黑php探针
  15. 毕业设计 基于STM32停车管理系统 - 物联网
  16. ESP32-C3入门教程 WiFi篇⑥——基于串口的 WiFi 智能配网
  17. CAShapeLayer把图片做成圆形效果
  18. 用python下载视频代码_python实现视频下载
  19. 给Win10系统添加多个桌面两种操作方法
  20. java around_基于Annotation的Spring AOP: @Around | 学步园

热门文章

  1. 【C语言】输入一个年份和月份,输出该月的天数
  2. android 日历
  3. Java蓝桥杯——比赛对局匹配
  4. left join最多几张表_Spark中的join策略
  5. 2013.12.26:4G
  6. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  7. vue3学习5:v-for
  8. RAW 264.7 小鼠单核巨噬细胞白血病细胞培养解决方案
  9. elasticalert
  10. numpy 数组和矩阵的乘法的理解