当前位置: 首页 > news >正文

【Unity】如何制作小地图

 

 

我们为什么要制作小地图呢?

原因很简单:

  1. 导航和定位:小地图可以显示玩家当前位置以及周围环境的概览。这使得玩家能够更好地导航和定位自己在游戏中的位置,找到目标或避开障碍物。
  2. 场景了解:通过小地图,玩家可以获得对整个游戏场景的全局视角。他们可以看到周围的地形、建筑和其他关键点,更好地了解游戏世界的结构和布局。
  3. 任务追踪:小地图通常会显示任务目标的位置,玩家可以根据任务标记在地图上的显示来追踪和寻找目标。这有助于玩家更有效地完成任务。
  4. 多人游戏协作:在多人游戏中,小地图可以显示队友的位置和动态信息,促进团队合作和协同操作。
  5. 即时反馈:小地图可以显示敌人、资源和其他关键要素的位置,为玩家提供即时的情报和反馈,帮助他们做出更明智的决策。
  6. 等等其他作用。

那么接下来我们就开始准备制作。

1.创建渲染器纹理

2.创建一个摄像机

(1).我们把已经创建好的摄像机取名为littleMapCamera,接下来我们对摄像机里面的组件进行设置。

a.我们先把刚刚创建的渲染器纹理添加到摄像机上的目标纹理上。

b.我们把摄像机拖拽到人物下面,让摄像机重置归到0的位置,我们再把摄像机往人物上面拉,我们为了视图效果更好,我们直接把摄像机的投影设置成正交,把它的大小和远近所谓调一下。

3.创建UGUI组件

(1).我们创建一个RawImage组件,我们改名为littleMap。接下来我们设置它的锚点为右上方。 

并且设置图片的宽度和高度。

到这里为什么我们的效果为什么还是白色的呢? 

下面我们就来解决。

(2) 把前面创建的渲染器纹理RawImage组件的纹理上面,就可以呈现出效果。

4.在小地图显示玩家和敌人的标记,不显示人物和敌人

(1).创建一个Image图片,我们把它拖出Canvas组件中,取名为PlayerSign。我们把他放在玩家下面,把它的位置重置归零,再把它移动到玩家稍微高一点点的地方。并且把对应的显示标记图片添加到Image组件的SourceImage中。最后还要在Image组件中添加一个Canvas组件。

那么我们就可以显示标记图片了。 

(2).由于我们的图片是正对着主摄像机的,但我们小地区是用littleMapCamera摄像机显示的。所以我们需要把它的X轴旋转90度和littleMapCamera摄像机平行。

 (3)运行后摄像机不会跟随玩家移动,只会一直显示在这个地方。

a.接下来我们创建一个CameraFollow相机跟随人物移动脚本 。

CameraFollow脚本:

代码实现:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CameraFollow : MonoBehaviour
{// Start is called before the first frame update// 角色的 Transform 组件public Transform target;// 相机和角色之间的偏移量Vector3 offset;//平滑值,不希望移动的太生硬public float smoothSpeed = 5f;void Start(){//摄像机到人物之间的差offset= transform.position-target.position;}// Update is called once per framevoid Update(){//实时移动的距离Vector3 pos= transform.position;transform.position= target.position+offset;Vector3.Lerp(pos,transform.position, smoothSpeed*Time.deltaTime);}
}

 b.回到unity挂载对象。

5.摄像机显示

 (1).我们需要把摄像机设置,主摄像机不能看见Sign玩家的标记,而liitleMapCamera摄像机应该看不到人物,我们只需要调节摄像机显示遮罩就可以。

a.我们在玩家射手设置Player图层,在Sign身上设置Sign图层。调节对应摄像机遮罩显示

主摄像机去除Sign

littleMapCamera摄像机去除Player图层

那么这样我们就达到了,如何显示并且在哪个摄像机中显示。 

6.运行效果

小地图

从视频中我们可以看出来,人物移动图标也在移动。并且人物始终在中间实现了摄像机跟随人物移动。

小伙伴们,你们学会了吗?...如果学会了或者对你们有帮助请留下你们宝贵的一键3连。


最后

以上步骤就是制作一个简单完整的Unity小地图的整个流程。希望能对你们提供帮助!!!

看到的小伙伴一键三连一下吧,你们的支持让我更有动力去创作和分享,希望能一直为你们带来惊喜和收获。

一键三连吧!

http://www.lryc.cn/news/135972.html

相关文章:

  • 基于IMX6ULLmini的linux裸机开发系列八:按键处理实验
  • 数据结构好题总结
  • Java串口开发
  • Python nohup 启动python脚本,后台没有日志
  • 完美解决微信小程序使用复选框van-checkbox无法选中
  • IDEA报错:类文件具有错误的版本 61.0,应为52.0
  • Linux 挂载局域网内共享目录
  • FFmpeg解码32k大分辨率出现如下错误:Picture size 32768x32768 is invalid
  • EasyExcel+POI制作带有有效性校验及下拉联动的Excel模板
  • Unity怎么制作魔法火焰特效?Unity制作魔法火焰特效方法
  • 双基证券:房地产基本面仍处下行通道 政策有望促进走稳
  • 31、springboot 配置HTTP服务端口及如何通过WebServer实例动态获取项目中的HTTP端口
  • 会计如何使用ChatGPT提高工作效率
  • 【TypeScript】类型推论和类型别名
  • 字节码调教的入口 —— JVM 的寄生插件 javaagent 那些事
  • Blender卡通着色入门
  • 性能调优篇 一、Jvm监控及诊断工具-命令行篇
  • Docker部署MongoDB 5.0.5
  • Day18-2-地狱回调-Promise-async-await技术
  • echarts范围限制下性能问题
  • wazuh环境配置以及案例复现
  • 解决el-select回显异常 显示option选项的value 而不是显示label
  • 【【STM32-SPI通信协议】】
  • 板卡常用前端 数据表操作
  • 基于AVR128单片机世界电子时钟的设计
  • Electron学习2 使用Electron-vue和Vuetify UI库
  • Java“牵手”根据商品分类ID获取速卖通商品分类详情页面数据获取方法,速卖通API实现批量商品数据抓取示例
  • QT 使用图表
  • SSRF 服务器端请求伪造
  • shell 05(shell索引数组变量)