Créer un mini-jeu avec C# dans Unity

Dans ce tutoriel, nous allons parcourir le processus de création d'un mini-jeu dans Unity à l'aide de C#. À la fin, vous aurez une compréhension de base du développement de jeux dans Unity et serez capable de vous en servir pour créer des jeux plus complexes.

Installation

Avant de commencer, assurez-vous d'avoir installé Unity et d'avoir une compréhension de base de la programmation C#. Créez un nouveau projet Unity ou ouvrez-en un existant dans lequel vous souhaitez créer votre mini-jeu.

Concept du mini-jeu

Notre mini-jeu sera un simple jeu "Catch the Falling Objects". Le joueur contrôle une pagaie en bas de l'écran et essaie d'attraper les objets qui tombent à l'aide du clavier.

Étapes de mise en œuvre

Étape 1: Mise en place de la scène

  1. Créez un nouveau projet Unity 2D ou utilisez-en un existant.
  2. Créez un sprite 2D pour la pagaie du joueur et les objets qui tombent.
  3. Créez un objet au sol et définissez une limite pour la zone de jeu.

Étape 2: Script du contrôleur de lecteur

Créez un script C# pour contrôler la raquette du joueur. Attachez ce script au GameObject de la raquette.

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

Étape 3: Générateur d'objets tombants

Créez un script pour générer des objets qui tombent de manière aléatoire depuis le haut de l'écran. Attachez ce script à un GameObject vide ou gérez-le dans le 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);
    }
}

Étape 4: Collecte et notation des objets

Créez un script pour gérer la collecte d'objets par la raquette du joueur et mettre à jour le score. Attachez ce script aux objets qui tombent.

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

Étape 5: Gestionnaire de jeu

Créez un script GameManager pour gérer l'état du jeu, le score et les conditions de fin de partie.

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

Étape 6: Configuration de l’interface utilisateur

Créez des éléments d'interface utilisateur tels que l'affichage du score, l'écran de fin de partie et le bouton de redémarrage. Associez les méthodes GameManager aux boutons d'interface utilisateur appropriés pour redémarrer le jeu.

Conclusion

Vous avez créé un mini-jeu simple dans Unity en utilisant C#. Cette configuration de base peut être étendue avec des fonctionnalités supplémentaires telles que des bonus, des niveaux et des mécanismes de jeu plus complexes. Expérimentez différentes idées pour rendre votre mini-jeu plus attrayant et plus agréable.