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