Detectar cuando suelto algo encima de otro objeto

Curso de Unity 3D

21.  
40.  

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

public class Slot : MonoBehaviour , IDropHandler{
	public void OnDrop(PointerEventData eventData){
		Debug.Log ("suelta");
		//eventData.pointerDrag es el objeto que hemos soltado sobre este objeto
		Debug.Log (eventData.pointerDrag.name);
	}
}

Este evento detecta la colisión entre el ratón y el objeto B sobre el que he soltado una pieza A. Sin embargo, si la pieza A está entre el ratón y la pieza B, dicha colisión no será detectada. Para evitarlo, puedo añadir al botón A un componente de tipo <<Canvas Group> desactivarlo cuando lo comience a arrastrar.

public class ObjetoA : MonoBehaviour, IDragHandler , IBeginDragHandler, IEndDragHandler, IPointerDownHandler{

	public void OnBeginDrag(PointerEventData eventData){
		GetComponent<CanvasGroup> ().blocksRaycasts = false;
	}

	public void OnEndDrag(PointerEventData eventData){
		GetComponent<CanvasGroup> ().blocksRaycasts = true;
	}
}

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.