Samouczek dotyczący minimapy typu przegląd dla Unity

Poziomy gry mają wiele kształtów i form, od prostych poziomów 2D po bardziej złożone poziomy 3D, z rozległymi przestrzeniami i korytarzami.

Minimapa to miniaturowa mapa umieszczana zwykle w rogu ekranu i często używana w grach wideo, aby pomóc graczom poruszać się po poziomie gry.

W tym samouczku pokażę, jak zrobić okrągłą minimapę w Unity, używając UI canvas.

Kroki

Jako kontroler odtwarzacza będę używać tego kontrolera FPS.

Aby utworzyć minimapę, wykonaj poniższe czynności:

  • Otwórz Scenę ze swoim poziomem gry
  • Utwórz nowe płótno interfejsu użytkownika, jeśli go nie masz (GameObject -> UI -> Canvas)
  • Utwórz nowy obraz, klikając prawym przyciskiem myszy Canvas -> Interfejs użytkownika -> Obraz
  • Przypisz poniższego duszka do obrazu (kliknij prawym przyciskiem myszy, aby pobrać obraz)

okrągły projekt obramowania minimapy

  • Zmień wyrównanie obrazu do lewego górnego rogu i obrót na (0, 1)

  • Utwórz nowy obraz surowy, klikając Płótno -> Interfejs użytkownika -> Obraz surowy (Upewnij się, że obraz surowy jest umieszczony przed obrazem radarowym w hierarchii, aby był renderowany z tyłu).

  • Utwórz nową kamerę, nadaj jej nazwę "Minimap_Camera", umieść ją nad odtwarzaczem i skieruj w dół
  • Usuń słuchacza audio z "Minimap_Camera"
  • Utwórz nową teksturę renderowania (w widoku projektu Utwórz -> Renderuj teksturę) i nadaj jej nazwę "MinimapTexture"
  • Przypisz nowo utworzoną teksturę renderowania do tekstury "Minimap_Camera" docelowej

  • Przypisz "MinimapTexture" do tekstury obrazu surowego

Teraz musimy dodać maskę sprite'a, aby obraz był ładnie przycięty:

  • Zduplikuj obraz radarowy
  • Zmień teksturę zduplikowanego obrazu na ikonkę poniżej (kliknij prawym przyciskiem myszy, aby pobrać obraz):

szare kółko przezroczyste

  • Dodaj komponent Maska do obrazu maski

  • Przesuń surowy obraz z teksturą renderowania wewnątrz obrazu maski

Ostateczny obraz powinien zostać teraz przycięty:

Jak widać, kamera minimapy pokazuje mapę taką, jaka jest, łącznie z graczem i wszystkimi obiektami dynamicznymi, ale nie o to nam chodzi, chcemy pokazać tylko mapę bez żadnych dynamicznych obiektów.

  • Zrób zrzut ekranu widoku mapy z góry (przed wykonaniem tej czynności dezaktywuj wszelkie obiekty dynamiczne, takie jak gracze, wrogowie itp.)

  • Utwórz nowy Quad (GameObject -> Obiekt 3D -> Quad) i umieść go pod mapą w następujący sposób:

  • Przypisz zrzut ekranu do Quada i zmień Shader materiału na "Unlit/Texture"
  • Upewnij się, że pozycja zrzutu ekranu na Quad jest zgodna z mapą:

  • Zmień warstwę minimapy Quad na "UI"
  • W "Minimap_Camera" zmień maskę uboju na "UI"
  • Utwórz kolejny Quad i przenieś go do obiektu "Minimap_Camera", przypisz do niego poniższy obrazek:

  • Zmień Shader na strzałce Quad na "Unlit/Transparent"

  • Zmień strzałkę Quad Layer na "UI"

Oto końcowy wynik:

  • Utwórz nowy skrypt, nazwij go "SC_MinimapCamera" i wklej w nim poniższy kod:

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);
    }
}
  • Dołącz skrypt SC_MinimapCamera do obiektu "Minimap_Camera".
  • Przypisz swojego gracza do zmiennej Target w SC_MinimapCamera.

Minimapa jest już gotowa, aby z niej skorzystać wystarczy przejść się po poziomie i obserwować zmianę pozycji.

Sharp Coder Odtwarzacz wideo

Sugerowane artykuły
Samouczek gry wieloosobowej na tym samym komputerze na podzielonym ekranie dla Unity
Samouczek menu głównego dla Unity
Tworzenie prostego modułu cieniującego trawę w Unity
Tworzenie menu pauzy w Unity
Wybór odpowiednich modeli mieczy dla Twojego projektu Unity
Modułowy dziedziniec — solidny fundament dla środowisk wirtualnych
Metaverse i Workspaces — Konferencja — Przegląd pakietu Unity Asset Store