supprimer une capsule dans un drag and drop

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
juliuson
Messages : 123
Inscription : 03 Mai 2017 18:00

supprimer une capsule dans un drag and drop

Message par juliuson » 24 Déc 2024 18:32

Salut à tous,

Voici ma question:

comment dire à un cube placé derrière une capsule de se déplacer (drag and drop) si on clique sur la capsule (OnMouseDown).
Le problème c'est que la capsule suit le cube.
J'ai réussi avec le code suivant, mais lorsque je dis de supprimer la capsule (Destroy ou SetActive(false)) le cube se supprime aussi:

Code : Tout sélectionner

public class clicCube : MonoBehaviour
{
    public GameObject capsule; // Référence au pentamino U
    public GameObject cube;

    private bool isDragging = false; // Indique si on est en train de déplacer le pentamino

    private void OnMouseDown()
    {
        if (capsule != null)
        {
            capsule.transform.SetParent(null);

            capsule.SetActive(true);
            Destroy(cube);
            cube.SetActive(false);
            isDragging = true;
        }
    }

    private void Update()
    {
        if (isDragging && capsule != null)
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out RaycastHit hit))
            {
                capsule.transform.position = new Vector3(hit.point.x, hit.point.y, capsule.transform.position.z);
            }
        }
    }

    private void OnMouseUp()
    {
        if (isDragging)
        {
            isDragging = false;
        }
    }
}

Répondre

Revenir vers « Scripting »