Tutorial de minimapas de tipo descripción general para Unity

Los niveles de juego vienen en muchas formas, desde simples niveles 2D hasta niveles 3D más complejos, con amplios espacios y pasillos.

Minimap es un mapa en miniatura que generalmente se coloca en la esquina de la pantalla y se usa a menudo en videojuegos para ayudar a los jugadores a navegar por el nivel del juego.

En este tutorial, mostraré cómo crear un minimapa circular en Unity, usando el lienzo de interfaz de usuario.

Pasos

Para el controlador del reproductor, usaré este Controlador FPS.

Para hacer un minimapa, siga los pasos a continuación:

  • Abre la escena con tu nivel de juego.
  • Cree un nuevo UI Canvas, si no tiene ninguno (GameObject -> UI -> Canvas)
  • Cree una nueva imagen, haciendo clic derecho en Lienzo -> UI -> Imagen
  • Asigne el siguiente objeto a la imagen (haga clic derecho para descargar la imagen)

diseño de borde de minimapa circular

  • Cambie la alineación de la imagen hacia la parte superior izquierda y el pivote a (0, 1)

  • Cree una nueva imagen sin formato, haciendo clic en Lienzo -> UI -> Imagen sin formato (asegúrese de que la imagen sin formato se coloque antes de la imagen de radar en Jerarquía, de modo que se represente detrás).

  • Crea una nueva cámara, llámala "Minimap_Camera", colócala encima de tu reproductor y luego apúntala hacia abajo.
  • Eliminar el oyente de audio de "Minimap_Camera"
  • Cree una nueva textura de renderizado (en la vista Proyecto Crear -> Textura de renderizado) y asígnele un nombre "MinimapTexture"
  • Asignar textura de renderizado recién creada a "Minimap_Camera" textura de destino

  • Asignar "MinimapTexture" a la textura de la imagen sin formato

Ahora necesitamos agregar una máscara de sprite, para que la imagen quede bien recortada:

  • Duplicar la imagen del radar
  • Cambie la textura de la imagen duplicada al siguiente objeto (haga clic derecho para descargar la imagen):

círculo gris transparente

  • Agregar componente de máscara a la imagen de máscara

  • Mueva la imagen sin formato con textura de renderizado dentro de la imagen de máscara

La imagen final debería recortarse ahora:

Como puede ver, la cámara del minimapa muestra el mapa tal como está, incluido el jugador y cualquier objeto dinámico, pero eso no es lo que queremos, queremos mostrar solo el mapa sin ningún objeto dinámico.

  • Tome una captura de pantalla de la vista superior del mapa (antes de hacerlo, desactive cualquier objeto dinámico como jugadores, enemigos, etc.)

  • Crea un nuevo Quad (GameObject -> Objeto 3D -> Quad) y colócalo debajo del mapa, así:

  • Asigne la captura de pantalla al Quad y cambie el material Shader a "Unlit/Texture"
  • Asegúrate de que la posición de la captura de pantalla en el Quad coincida con el mapa:

  • Cambiar la capa cuádruple del minimapa a "UI"
  • En "Minimap_Camera" cambie la Máscara de sacrificio a "UI"
  • Crea otro Quad y muévelo dentro del objeto "Minimap_Camera", asígnale la imagen a continuación:

  • Cambie el sombreador en la flecha Quad a "Unlit/Transparent"

  • Cambie la flecha de capa cuádruple a "UI"

Aquí esta el resultado final:

  • Cree un nuevo script, asígnele el nombre "SC_MinimapCamera" y pegue el siguiente código dentro de él:

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);
    }
}
  • Adjunte el script SC_MinimapCamera al objeto "Minimap_Camera".
  • Asigne su reproductor a la variable Target en SC_MinimapCamera.

El minimapa ya está listo, para usarlo simplemente camina por el nivel y observa el cambio de posición.

Sharp Coder Reproductor de video

Artículos sugeridos
El poder de las texturas de marcador de posición para la creación de prototipos en Unity
Tutorial del menú principal de Unity
Creando un sombreador de césped simple en Unity
Elegir los modelos de espada adecuados para su proyecto Unity
Una base sólida para entornos virtuales
Trabajar con el sistema UI de Unity
Tutorial multijugador en pantalla dividida y en la misma PC para Unity