Hello guys i am trying to implement a simple drag and drop function, if image is dragged and released over a object with tag "CardHolder" it should be parented to that object, how can i achieve this?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class CardInteraction : MonoBehaviour, IPointerClickHandler, IDragHandler, IBeginDragHandler, IEndDragHandler
{
[SerializeField] CardDisplay cardDisplay;
static Transform myParent;
static Transform canvas = null;
bool isDraging = false;
private void Awake()
{
if (canvas == null)
{
canvas = GetComponentInParent<Canvas>().gameObject.transform;
myParent = GameObject.FindGameObjectWithTag("CardsInHand").transform;
}
}
public void OnBeginDrag(PointerEventData eventData)
{
isDraging = true;
transform.SetParent(canvas);
}
public void OnDrag(PointerEventData eventData)
{
transform.position = eventData.position;
}
public void OnEndDrag(PointerEventData eventData)
{
//check for object with CardHolder tag, if not found set card back to previus parrent
transform.SetParent(myParent);
}
public void OnPointerClick(PointerEventData eventData)
{
if (isDraging)
{
isDraging = false;
return;
}
cardDisplay.OnClick();
}
}