GQ_Communicate/GQ_URP/GQ/Assets/script/设备拖拽/OnChlickDrag.cs

79 lines
2.1 KiB
C#

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
[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;
/// <summary>
/// 货架父物体
/// </summary>
public GameObject framesParent;
public List<GameObject> framesList = new List<GameObject>();
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<DragTest>().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<DragTest>();
if (dt)
{
dt.isExit = this.isExit;
dt.isClicked = this.isClicked;
}
}
}
void Update()
{
//if (ct)
//{
// var dt = ct.GetComponent<DragTest>();
// 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
}
}