- Home /
How can i destroy an object in OnPointerEnter ( IPointerEnterHandler )
So i have two types of prefabs. On that is dragged from a list and another one that should take it's place on mouse once it enters a specific area. The problem is that right now as i have wrote it, the new object does not stick the the mouse and the old one does not get destroyed.
public class OnEnterFormationBoard : MonoBehaviour, IPointerEnterHandler
{
public GameObject unitCard;
public void OnPointerEnter(PointerEventData eventData)
{
Vector3 mousePos = Input.mousePosition;
GameObject cardUI = Instantiate(unitCard, mousePos, Quaternion.identity);
cardUI.transform.position = eventData.position;
cardUI.transform.SetParent(this.gameObject.transform);
cardUI.GetComponent<RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical,
gameObject.GetComponent<BattleFormationsBoard>().hexOffset);
cardUI.GetComponent<RectTransform>
().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal,
gameObject.GetComponent<BattleFormationsBoard>().hexOffset);
DragUnitType d = eventData.pointerDrag.GetComponent<DragUnitType>();
if (d != null)
{
cardUI.GetComponent<DragUnitType>().unitType = d.unitType;
cardUI.GetComponent<DragUnitType>().unitArmourType = d.unitArmourType;
cardUI.GetComponent<DragUnitType>().isOnBoard = true;
Destroy(eventData.selectedObject);
}
}
}
Which one is the new object ? cardUI ? If yes, then have a look at:
cardUI.transform.position = eventData.position;
you're setting the position of it to eventData.position , not Input.mousePosition
Also - where is the old one ? If it's the one that you pass to OnPointerEnter(...) then it probably means that the pointerDrag of the PointerEventData that you pass to the $$anonymous$$ethod doesn't contain a DragUnitType since you're only trying to destroy the selectedObject, if DragUnitType d is NOT null .. meaning that it probably is, if Destroy isn't called on it..
Have a look at the Output / console window in Unity and check for errors / warnings
Your answer
Follow this Question
Related Questions
Drag multiple object using multitouch? 1 Answer
How to create a Drag & Drop system which verifies what gameObject was dragged into the slot? 0 Answers
Check the position after drag and drop 0 Answers
How to add a score when the correct object drags to the correct box? 1 Answer
Drag and drop on object to bounce back to it place unity c# 1 Answer