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
- Utwórz nowy projekt 2D Unity lub użyj istniejącego.
- Utwórz dwuwymiarowy obraz przedstawiający wiosło gracza i spadające obiekty.
- 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ą.