Tworzenie mini-gry w C# w Unity

W tym samouczku przejdziemy przez proces tworzenia mini-gry w Unity przy użyciu języka C#. Pod koniec będziesz mieć podstawową wiedzę na temat tworzenia gier w Unity i będziesz w stanie ją rozwijać, aby tworzyć bardziej złożone gry.

Organizować coś

Zanim zaczniemy, upewnij się, że masz zainstalowany Unity i podstawową wiedzę na temat programowania w C#. Utwórz nowy projekt Unity lub otwórz istniejący, w którym chcesz zbudować swoją mini-grę.

Koncepcja mini-gry

Nasza mini-gra będzie prostą grą "Catch the Falling Objects". Gracz steruje paletką na dole ekranu i próbuje łapać spadające przedmioty, używając klawiatury.

Etapy wdrażania

Krok 1: Przygotowanie sceny

  1. Utwórz nowy projekt 2D Unity lub użyj istniejącego.
  2. Utwórz dwuwymiarowy obraz przedstawiający wiosło gracza i spadające obiekty.
  3. Utwórz obiekt terenowy i ustal granice obszaru gry.

Krok 2: Skrypt kontrolera gracza

Utwórz skrypt C#, aby sterować wiosłem gracza. Dołącz ten skrypt do obiektu GameObject wiosła.

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float speed = 5f; // Adjust speed as needed

    void Update()
    {
        float moveInput = Input.GetAxis("Horizontal");
        float moveAmount = moveInput * speed * Time.deltaTime;
        transform.Translate(Vector3.right * moveAmount);

        // Clamp player within screen boundaries
        float screenEdge = Camera.main.orthographicSize * Camera.main.aspect;
        float clampX = Mathf.Clamp(transform.position.x, -screenEdge, screenEdge);
        transform.position = new Vector3(clampX, transform.position.y, transform.position.z);
    }
}

Krok 3: Generator spadających obiektów

Utwórz skrypt, aby generować spadające obiekty losowo z góry ekranu. Dołącz ten skrypt do pustego GameObject lub zarządzaj nim w GameManager.

using UnityEngine;

public class ObjectGenerator : MonoBehaviour
{
    public GameObject objectPrefab;
    public float spawnInterval = 1f;
    public float spawnWidth = 4f;

    void Start()
    {
        InvokeRepeating("SpawnObject", 0f, spawnInterval);
    }

    void SpawnObject()
    {
        float randomX = Random.Range(-spawnWidth, spawnWidth);
        Vector3 spawnPosition = new Vector3(randomX, transform.position.y, transform.position.z);
        Instantiate(objectPrefab, spawnPosition, Quaternion.identity);
    }
}

Krok 4: Zbieranie obiektów i punktacja

Utwórz skrypt do obsługi zbierania obiektów przez wiosło gracza i aktualizuj wynik. Dołącz ten skrypt do spadających obiektów.

using UnityEngine;

public class ObjectCollector : MonoBehaviour
{
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            // Handle scoring or game logic here
            Destroy(gameObject); // Destroy the collected object
        }
    }
}

Krok 5: Menedżer gry

Utwórz skrypt GameManager, aby zarządzać stanem gry, punktacją i warunkami zakończenia gry.

using UnityEngine;
using UnityEngine.SceneManagement;

public class GameManager : MonoBehaviour
{
    public GameObject gameOverUI;
    bool isGameOver = false;

    void Update()
    {
        if (!isGameOver && GameOverCondition())
        {
            GameOver();
        }
    }

    bool GameOverCondition()
    {
        // Define your game over condition here (e.g., time limit, lives lost)
        return false;
    }

    void GameOver()
    {
        isGameOver = true;
        gameOverUI.SetActive(true); // Display game over UI
        Time.timeScale = 0f; // Freeze game time
    }

    public void RestartGame()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
}

Krok 6: Konfiguracja interfejsu użytkownika

Utwórz elementy interfejsu użytkownika, takie jak wyświetlanie wyników, ekran zakończenia gry i przycisk restartu. Dołącz metody GameManager do odpowiednich przycisków interfejsu użytkownika w celu ponownego uruchomienia gry.

Wniosek

Stworzyłeś prostą minigrę w Unity używając C#. Ta podstawowa konfiguracja może zostać rozszerzona o dodatkowe funkcje, takie jak power-upy, poziomy i bardziej złożone mechanizmy rozgrywki. Eksperymentuj z różnymi pomysłami, aby uczynić swoją minigrę bardziej angażującą i przyjemną.