Jak dodać funkcję otwierania skrzynek w Unity

Otwieranie skrzynek jest popularną funkcją w wielu grach, zwłaszcza w gatunkach takich jak strzelanki pierwszoosobowe i gry RPG. Polega ona na umożliwieniu graczom otwierania wirtualnych skrzynek lub pudełek w celu otrzymania losowych przedmiotów w grze. Ta funkcja dodaje emocji i element przypadku, zachęcając graczy do większego zaangażowania w grę.

W tym samouczku nauczymy się, jak zaimplementować prostą funkcję otwierania skrzynek w Unity. Omówimy konfigurację projektu, utworzenie skrzynki i przedmiotów oraz napisanie logiki otwierającej skrzynkę i ujawniającej losowy przedmiot.

Krok 1: Konfiguracja projektu

Zacznij od utworzenia nowego projektu 2D w Unity. Nazwij projekt "CaseOpeningGame". Po utworzeniu projektu skonfiguruj główną scenę, tworząc niezbędne elementy i obiekty interfejsu użytkownika.

Krok 2: Tworzenie skrzynki i przedmiotów

Po pierwsze, potrzebujemy sprite'ów do skrzynki i przedmiotów. Możesz tworzyć własne duszki lub korzystać z darmowych zasobów z Unity Asset Store. Dla uproszczenia załóżmy, że masz trzy ikonki przedmiotów: "Item1", "Item2" i "Item3".

  1. W oknie Hierarchy kliknij prawym przyciskiem myszy i wybierz Obiekt 2D -> Sprite. Nazwij to "Case".
  2. Ustaw ikonkę sprawy w oknie Inspector.
  3. Powtórz ten proces, aby utworzyć trzy ikonki przedmiotów i nazwij je "Item1", "Item2" i "Item3".

Krok 3: Konfiguracja interfejsu użytkownika

Utwórz przycisk, który uruchomi otwarcie skrzynki:

  1. Kliknij prawym przyciskiem myszy okno Hierarchy i wybierz UI -> Button. Nazwij to "OpenCaseButton".
  2. Zmień tekst przycisku na "Open Case".

Utwórz pusty obiekt GameObject do przechowywania przedmiotów i nadaj mu nazwę "ItemContainer". Pomoże nam to uporządkować przedmioty, gdy zostaną ujawnione.

Krok 4: Tworzenie skryptu otwarcia sprawy

Teraz musimy stworzyć skrypt obsługujący logikę otwierania skrzynek. Kliknij prawym przyciskiem myszy folder Assets, wybierz Utwórz -> C# Script i nadaj mu nazwę "CaseOpener". Kliknij dwukrotnie skrypt, aby otworzyć go w edytorze kodu.

// CaseOpener.cs
using UnityEngine;
using UnityEngine.UI;

public class CaseOpener : MonoBehaviour
{
    public GameObject[] items;
    public Transform itemContainer;
    public Button openCaseButton;
    
    void Start()
    {
        openCaseButton.onClick.AddListener(OpenCase);
    }

    void OpenCase()
    {
        int randomIndex = Random.Range(0, items.Length);
        Instantiate(items[randomIndex], itemContainer);
    }
}

Dołącz skrypt CaseOpener do pustego obiektu GameObject w scenie i nadaj mu nazwę "GameController".

Krok 5: Przypisywanie referencji

W oknie Inspector obiektu GameController przypisz element GameObjects do tablicy "Items", ItemContainer do pola "Item Container", a OpenCaseButton do pola "Open Case Button".

Krok 6: Testowanie funkcji otwierania etui

Naciśnij przycisk odtwarzania w Unity, aby przetestować funkcję otwierania obudowy. Po kliknięciu przycisku "Open Case" w kontenerze ItemContainer powinien pojawić się losowy przedmiot.

Wniosek

Wykonując poniższe kroki, zaimplementowałeś podstawową funkcję otwierania skrzynek w Unity. Ta funkcja to świetny sposób na dodanie emocji i zaangażowania do gry. Możesz go jeszcze bardziej ulepszyć, dodając animacje, efekty dźwiękowe i bardziej złożoną logikę nagród. Ten podstawowy framework można dostosować i rozszerzyć, aby dopasować go do potrzeb konkretnej gry.