using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEditor.Experimental.GraphView;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;
[AddComponentMenu("按钮上")]
[RequireComponent(typeof(UnityEngine.EventSystems.EventTrigger))]
public class OnChlickDrag : MonoBehaviour, IPointerDownHandler, IPointerExitHandler,IPointerEnterHandler
{
    public DeviceType deviceType;
    public GameObject prefab;
    //private GameObject prefab;
    public GameObject InstantiatePos;
    /// 
    /// 货架父物体
    /// 
    public GameObject framesParent;
    public List framesList = new List();
    private bool isDragging = false;
    public Transform ct;
    public bool isClicked = false; // 是否点击了图片
    public bool isExit = false;
    public void OnPointerDown(PointerEventData eventData)
    {
        isClicked = true;
        isExit = false;
    }
    public void OnPointerExit(PointerEventData eventData)
    {
        if (isClicked)
        {
            isExit = true;
            isClicked = false;
            ct = Instantiate(prefab).transform;
            ct.GetComponent().listTargets = framesList;
            Vector3 curScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, Vector3.Distance(Camera.main.transform.position, InstantiatePos.transform.position));
            var curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace)/* + offset*/;
            ct.position = curPosition;
            var dt = ct.GetComponent();
            if (dt)
            {
                dt.isExit = this.isExit;
                dt.isClicked = this.isClicked;
            }
        }
    }
    void Update()
    {
        //if (ct)
        //{
        //    var dt = ct.GetComponent();
        //    if (dt)
        //    {
        //        dt.isExit = this.isExit;
        //        dt.isClicked = this.isClicked;
        //    }
        //}
        //else
        //{
        //    isExit = false;
        //}
    }
    public void OnPointerEnter(PointerEventData eventData)
    {
        isExit = true;
    }
    public enum DeviceType
    {
        dev1, dev2, dev3
    }
}