using UnityEngine;
using UnityEngine.EventSystems;

public class PuzzlePiece : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
    private Vector3 startPosition;
    private Transform startParent;

    public void OnBeginDrag(PointerEventData eventData)
    {
        startPosition = transform.position;
        startParent = transform.parent;
        transform.SetParent(transform.root);
        GetComponent<CanvasGroup>().blocksRaycasts = false;
    }

    public void OnDrag(PointerEventData eventData)
    {
        transform.position = eventData.position;
    }

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

        // 在这里添加判断拼图块是否到达正确位置的逻辑
        // 可以使用碰撞检测或者其他方法来判断位置是否正确
        // 如果位置正确,可以执行相应的操作,比如播放音效或者显示完成拼图的提示
    }
}

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐