Створення міні-ігри за допомогою C# в Unity

У цьому підручнику ми розглянемо процес створення міні-гри Unity за допомогою C#. Наприкінці ви матимете базове уявлення про розробку ігор на Unity і зможете на основі цього створювати складніші ігри.

Налаштування

Перш ніж ми почнемо, переконайтеся, що у вас встановлено Unity і ви маєте базове розуміння програмування на C#. Створіть новий проект Unity або відкрийте існуючий, де ви хочете створити свою міні-гру.

Концепція міні-гри

Наша міні-гра буде простою грою "Catch the Falling Objects". Гравець керує веслом у нижній частині екрана та намагається зловити падаючі предмети за допомогою введення з клавіатури.

Етапи реалізації

Крок 1: Налаштування сцени

  1. Створіть новий 2D Unity проект або скористайтеся наявним.
  2. Створіть 2D-спрайт для весла гравця та падаючих предметів.
  3. Створіть наземний об’єкт і обмежте ігрову зону.

Крок 2: Сценарій контролера програвача

Створіть сценарій C# для керування веслом гравця. Прикріпіть цей скрипт до об’єкта GameObject.

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);
    }
}

Крок 3: Генератор падаючих предметів

Створіть сценарій для випадкового генерування падаючих предметів з верхньої частини екрана. Приєднайте цей сценарій до порожнього GameObject або керуйте ним у 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);
    }
}

Крок 4: Збір об’єктів і оцінка

Створіть сценарій для обробки збору об’єктів веслом гравця та оновіть рахунок. Прикріпіть цей скрипт до падаючих предметів.

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
        }
    }
}

Крок 5: Менеджер ігор

Створіть сценарій GameManager для керування станом гри, підрахунком балів і умовами завершення гри.

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);
    }
}

Крок 6: Налаштування інтерфейсу користувача

Створюйте такі елементи інтерфейсу, як відображення результатів, екран завершення гри та кнопка перезапуску. Приєднайте методи GameManager до відповідних кнопок інтерфейсу користувача для перезапуску гри.

Висновок

Ви створили просту міні-гру Unity за допомогою C#. Цю базову настройку можна розширити додатковими функціями, такими як посилення, рівні та складніша ігрова механіка. Експериментуйте з різними ідеями, щоб зробити вашу міні-гру більш захоплюючою та приємною.