Unity概述型小地图教程

游戏关卡有多种形状和形式,从简单的 2D 关卡到更复杂的 3D 关卡,具有广阔的空间和走廊。

迷你地图 是一种微型地图,通常放置在屏幕的角落,通常在视频游戏中用于帮助玩家导航游戏关卡。

在本教程中,我将展示如何使用 UI canvasUnity 中制作圆形小地图。

脚步

对于玩家控制器,我将使用这个 FPS Controller

要制作小地图,请按照以下步骤操作:

  • 根据您的游戏等级打开场景
  • 如果没有的话,创建一个新的 UI Canvas(GameObject -> UI -> Canvas)
  • 创建一个新图像,右键单击 Canvas -> UI -> Image
  • 将下面的精灵分配给图像(右键单击下载图像)

圆形小地图边框设计

  • 将图像对齐方式更改为左上角,将轴心更改为 (0, 1)

  • 创建一个新的原始图像,通过单击“画布”->“用户界面”->“原始图像”(确保原始图像放置在层次结构中的雷达图像之前,因此它会渲染在后面)。

  • 创建一个新相机,将其命名为 "Minimap_Camera",将其放置在播放器上方,然后将其指向下方
  • 从中删除音频监听器 "Minimap_Camera"
  • 创建一个新的渲染纹理(在项目视图中创建 -> 渲染纹理)并为其命名 "MinimapTexture"
  • 将新创建的渲染纹理分配给 "Minimap_Camera" 目标纹理

  • 将 "MinimapTexture" 分配给原始图像纹理

现在我们需要添加一个精灵蒙版,以便很好地裁剪图像:

  • 复制雷达图像
  • 将复制图像的纹理更改为下面的精灵(右键单击下载图像):

灰色圆圈透明

  • 将 Mask 组件添加到 mask 图像中

  • 将带有渲染纹理的原始图像移动到蒙版图像内

现在应该裁剪最终图像:

正如您所看到的,小地图相机按原样显示地图,包括玩家和任何动态对象,但这不是我们想要的,我们只显示没有任何动态对象的地图。

  • 截取地图顶视图的屏幕截图(在此之前,请停用任何动态对象,例如玩家、敌人等)

  • 创建一个新的 Quad(GameObject -> 3D Object -> Quad)并将其放置在地图下方,如下所示:

  • 将屏幕截图分配给Quad并将材质Shader更改为 "Unlit/Texture"
  • 确保 Quad 上的屏幕截图位置与地图匹配:

  • 将小地图四层更改为 "UI"
  • 在 "Minimap_Camera" 中将剔除掩码更改为 "UI"
  • 创建另一个 Quad 并将其移动到 "Minimap_Camera" 对象内,将下面的图像分配给它:

  • 将箭头 Quad 上的 Shader 更改为 "Unlit/Transparent"

  • 将箭头四层更改为 "UI"

这是最终结果:

  • 创建 一个新脚本,将其命名为 "SC_MinimapCamera" 并将以下代码粘贴到其中:

SC_MinimapCamera.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SC_MinimapCamera : MonoBehaviour
{
    public Transform target;

    float defaultPosY;

    // Start is called before the first frame update
    void Start()
    {
        defaultPosY = transform.position.y;
    }

    // Update is called once per frame
    void Update()
    {
        // Apply position
        transform.position = new Vector3(target.position.x, defaultPosY, target.position.z);
        // Apply rotation
        transform.rotation = Quaternion.Euler(90, target.eulerAngles.y, 0);
    }
}
  • SC_MinimapCamera 脚本附加到 "Minimap_Camera" 对象。
  • 将您的玩家分配给 SC_MinimapCamera 中的 Target 变量。

小地图现已准备就绪,要使用它,只需在关卡中走动并观察位置变化即可。

Sharp Coder 视频播放器

推荐文章
在 Unity 中创建简单的草着色器
在 Unity 中创建获胜者屏幕 UI
在 Unity 中创建暂停菜单
在 Unity 中创建飞行模拟器
在 Unity 中创建 VHS 磁带滤镜效果
为您的 Unity 项目选择正确的 Sword 模型
如何将僵尸添加到 Unity 游戏中