本次给大家分享的是unity等比例映射小地图实现的第一种方式-----通过Image进行等比例映射:最终达到的效果就是玩家映射到小地图上的图片这里用PlayerIcon代替,Player的移动带动PlayerIcon的移动而背景不动.

一 UI准备部分:(需要注意的是场景Player居于地形正中心   画布下PlayerIcon的锚点要居中

通过控制玩家的移动计算映射到Image上的位置. 其中Image的Sprite是小地图的背景(我们预先要将场景的地图调成Z--X Top模式适比截取场景的图片作为小地图的背景图)如图所示:

将截取好的背景minimapImage.sprite赋给Canvas下面的Image  再给miniImage的子物体添加PlayerIcon

调成Game模式呈现出来的效果图为

二 核心算法部分:

1.取人物在大地图里面的一个等比例(0.5,0.5)
WithRate = Pserson.pos.x / terrain.width;
HeigthRate = Pserson.pos.y / terrain.heigth;

2.通过大地图的比例,计算出在小地图的位置这样就达到了小地图位置的同步,怎么样是不是很简单
litMapPos.x = litMap.width * WithRate
litMapPos.y = litMap.heigth * HeigthRate

3.那么怎么控制人物的旋转也能显示再小地图上呢?很简单让Playericon的旋转角度=Player的旋转角度,这样就同步更新过来啦~还要注意一点如果你的旋转的方向别忘了取反哦~

tmpAngle = palyerIcon.localEulerAngles;
tmpAngle.z = 90 - player.localEulerAngles.y;
palyerIcon.localEulerAngles = tmpAngle;

以上就是核心算法的实现

由于位置在Update里,实时都要同步更新  但实战项目的地图都是非常大的,在场景中移动几步地图上是没有什么变化的  为了降低CPU的计算工作,我们这里用计时每隔5秒一更新就好啦  这里我做的Demo代码附在下面,挂到PlayerIcon上即可   场景中移动Player可以在小地图中看到PlayerIcon的同步 下一篇我会继续为大家介绍RawImage实现地图的移动来实时更新玩家位置

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class LittleMap : MonoBehaviour {public Transform player;public Terrain myTerrain;RectTransform litMap;RectTransform palyerIcon;float widthRate;float heightRate;Vector3 tmpAngle;Vector2 tmpPos = Vector2.zero;float timeCount = 0;void Start () {litMap = transform.parent.GetComponent<RectTransform>();palyerIcon = transform.GetComponent<RectTransform>();     }void Update () {timeCount += Time.deltaTime;if (timeCount > 0.5f){timeCount = 0;UpdatePos();}}void UpdatePos() {widthRate = player.transform.position.x / myTerrain.terrainData.size.x;heightRate = player.transform.position.z / myTerrain.terrainData.size.z;tmpPos.x = litMap.sizeDelta.x * widthRate;tmpPos.y = litMap.sizeDelta.y * heightRate;tmpAngle = palyerIcon.localEulerAngles;tmpAngle.z = 90 - player.localEulerAngles.y;palyerIcon.localEulerAngles = tmpAngle;}
}

unity小地图实现----等比例映射实现的几种方式相关推荐

  1. Mybaits plus 数据库映射java实体三种方式

    前言 数据库一般是用下划线进行设计字段,Java实体一般用驼峰法设计属性.这是不成文的规定.当数据库字段映射java实体会出现问题.下面分别是数据库字段和实体属性. 解决问题三种方式 1.利用mysq ...

  2. hibernate mysql 视图_转:hibernate映射视图的两种方式

    本文转自:http://blog.csdn.net/id19870510/article/details/5453965 1.数据库已经建立视图,hibernate只是把视图当作普通的表来映射. 视图 ...

  3. Unity 加载AssetBundle中AB包的几种方式

    前言: 在unity中创建一个Cube,设置成预制体,生成AssetBundle中AB包,生成包代码如下: BuildPipeline.BuildAssetBundles(dir,BuildAsset ...

  4. Tomcat的虚拟目录映射常用的几种方式

    可以直接将项目丢到tomcat的webapps目录下,当tomcat重启时就可以访问到项目了 如果你直接想通过 http://localhost:8080/welcome.html 直接访问该页面,可 ...

  5. [unity] 音频的二进制流转化为audioclip的两种方式

    1.将返回的byte[]数组,转换成float[]数组,然后将通过 audioSource.clip.SetData()方法,将音频数据赋给audiosource,实现语音播放:但这种只有wav很有可 ...

  6. unity角色移动代码_教你3个步骤实现Unity小地图

    一.前言 小地图功能在很多游戏中都有,特别是RPG游戏,在Unity中如何实现小地图功能呢,我来教你. 二.思路 专门创建一个顶视角的摄像机,然后摄像机有个Target Texture属性,可以将渲染 ...

  7. Unity动态创建Avatar骨骼映射

    目录 前言 1 了解Avatar骨骼映射 2 动态创建Avatar骨骼映射 2.1 寻找相关API AvatarBuilder.BuildHumanAvatar Declaration Paramet ...

  8. 盛大游戏技术总监徐峥:Unity引擎使用的三种方式

    在5月13日Unite 2017 案例分享专场上,盛大游戏技术总监徐峥分享了使用Unity引擎的三种方式,以下为详细内容: 大家好,我先简单介绍一下我自己,我是盛大游戏的技术总监徐峥.我今天想分享的主 ...

  9. java映射文件是哪一种xml_java解析xml的几种方式哪种最好?

    满意答案 gjek59ug 2013.10.10 采纳率:52%    等级:12 已帮助:9223人 (1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组 ...

最新文章

  1. C语言中 指针强化训练之 memcpy
  2. vlist java实现-转
  3. 无线路由器、AP、胖AP、瘦AP的概念区别
  4. linux搭建rabbitmq环境,RabbitMQlinux-centos环境配置
  5. 解决myeclipse报错500,MySQLyog报错误码问题
  6. java 可逆的加密算法_java实现AES可逆加密算法
  7. 自媒体人本质是互联网公司内容运营的角色
  8. windows 7 netsh wlan命令连接wifi
  9. /etc/profile
  10. 如何为Kalman Studio编写T4模板
  11. pandas 修改 DataFrame 列名 1
  12. 嵌入式Linux驱动开发整体框架
  13. 互联网思维——用户思维
  14. 001《以幽默的方式过一生》 读书笔记
  15. 2.2.7 虚拟Ethernet以太网卡
  16. 数据分析工具的深度对比:FineBI vs PowerBI
  17. mac c语言运行程序,Mac运行C语言
  18. 笔记本的网络出现红叉,网络连接不上,网络不可用
  19. 央视新闻30分:开心网流行背后存在的隐忧
  20. oracle 快照过旧:回退段号,ORA-01555: 快照过旧: 回退段号 39 (名称为 _SYSSMU39_3029844184$) 过小...

热门文章

  1. 蚁创互联|微商起盘全案模式策划
  2. 从项目中卸载SteamVR
  3. mysql的事件探查器_SQL Server 2008 事件探查器(SQL SERVER Profiler)
  4. CSS实现动态 正在加载中...字
  5. COGS 729. [网络流24题] 圆桌聚餐
  6. Android 百度音乐盒
  7. 【高德地图】自定义样式:
  8. 关于福彩快乐8玩法的概率统计
  9. 7.3 股票分析(project)
  10. php网上书城答辩的问题,网上书城毕业论文(答辩).doc