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 } }