ドラッグしたいオブジェクトにつける(カードゲームならカード)
DragObj.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class DragObj : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler {
public Transform parentTransform;
public void OnBeginDrag(PointerEventData data){
Debug.Log("OnBeginDrag");
GetComponent<CanvasGroup>().blocksRaycasts = false;
parentTransform = transform.parent;
transform.SetParent(transform.parent.parent);
}
public void OnDrag(PointerEventData data){
transform.position = data.position;
}
public void OnEndDrag(PointerEventData data){
Debug.Log("OnEndDrag");
transform.SetParent(parentTransform);
GetComponent<CanvasGroup>().blocksRaycasts = true;
}
}
ドラッグしたいオブジェクトにCanvasGroupをつける()
ドロップしたいオブジェクトにつける(カードゲームならフィールドなど)
DropArea.cs
using UnityEngine;
using UnityEngine.EventSystems;
public class DropArea : MonoBehaviour, IDropHandler
{
public void OnDrop(PointerEventData data){
Debug.Log(gameObject.name);
DragObj dragObj = data.pointerDrag.GetComponent<DragObj>();
if(dragObj != null){
dragObj.parentTransform = this.transform;
Debug.Log(gameObject.name+"に"+data.pointerDrag.name+"をドロップ");
}
}
}
スタジオしまづでゲームの作り方を学びたい人向けのサロン▶︎https://camp-fire.jp/projects/view/149191