Système Pick and Drop sans inventaire dans Unity

Dans ce didacticiel, nous allons créer un système simple de sélection et de dépôt dans Unity sans utiliser de système d'inventaire. Ce système permettra au joueur de récupérer des objets de l'environnement et de les déposer à un endroit différent.

Conditions préalables

  • Unity Hub installé
  • Unity Éditeur (version 2019 ou ultérieure)
  • Connaissance de base de C#

Mise en place du projet

  1. Ouvrez Unity Hub et créez un nouveau projet Unity.
  2. Configurez votre scène avec un personnage joueur et quelques objets avec lesquels interagir.

Mise en œuvre du système Pick and Drop

Étape 1: Créer un script de collecte

using UnityEngine;

public class Pickup : MonoBehaviour
{
    private Transform heldObject;
    private Vector3 offset;

    void Update()
    {
        if (heldObject != null)
        {
            MoveHeldObject();
            CheckDrop();
        }
        else
        {
            CheckPickup();
        }
    }

    void MoveHeldObject()
    {
        Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        heldObject.position = new Vector3(mousePosition.x + offset.x, mousePosition.y + offset.y, 0);
    }

    void CheckPickup()
    {
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
            if (hit.collider != null && hit.collider.CompareTag("Pickup"))
            {
                heldObject = hit.transform;
                offset = heldObject.position - Camera.main.ScreenToWorldPoint(Input.mousePosition);
            }
        }
    }

    void CheckDrop()
    {
        if (Input.GetMouseButtonDown(1))
        {
            heldObject = null;
        }
    }
}

Étape 2: Ajouter des balises aux objets de collecte

Marquez les objets que vous souhaitez que le joueur puisse récupérer avec le tag "Pickup".

  1. Sélectionnez un objet dans la scène.
  2. Dans la fenêtre Inspecteur, cliquez sur la liste déroulante "Tag".
  3. Sélectionnez "Add Tag" et saisissez "Pickup".
  4. Appliquez la balise à l'objet.

Étape 3: tester le système

  1. Ajoutez des objets avec la balise "Pickup" à votre scène.
  2. Jouez la scène en Unity.
  3. Cliquez sur un objet tagué pour le récupérer.
  4. Cliquez avec le bouton droit pour déposer l'objet détenu.

Conclusion

Vous avez implémenté avec succès un système simple de prélèvement et de dépôt sans utiliser d'inventaire dans Unity. Ce système permet au joueur d'interagir avec les objets de la scène en les ramassant et en les déposant à différents endroits. N'hésitez pas à développer ce système en ajoutant des fonctionnalités telles que l'accrochage aux objets, la rotation des objets ou des interactions plus complexes.

Articles suggérés
Codage d'un système d'inventaire simple avec glisser-déposer de l'interface utilisateur dans Unity
Création d'un système de puces 2D simple dans Unity
Créer un système d'inventaire et de fabrication d'objets dans Unity
Interagir avec des objets dans le jeu Unity
Comment ajouter un effet de lunette de sniper dans Unity
Introduction à la machine d'état dans Unity
Unity Comment créer un shader