FateViewer/Assets/Scripts/UIElementDragger.cs

49 lines
1.3 KiB
C#
Raw Normal View History

2023-10-09 00:51:40 +08:00
using UnityEngine;
using UnityEngine.EventSystems;
public class UIElementDragger : EventTrigger
{
private bool dragging;
public Transform alsoDrag;
public Vector3 alsoDragOffset = Vector3.zero;
private void Start()
{
alsoDrag = transform.parent.GetChild(0);
if (alsoDrag)
{
alsoDragOffset = transform.position - alsoDrag.position;
}
}
public void Update()
{
if (dragging)
{
transform.position = new Vector2(Mathf.Clamp(Input.mousePosition.x, 10, Screen.width-10), Mathf.Clamp(Input.mousePosition.y, 10, Screen.height-10));
if (alsoDrag)
{
alsoDrag.position = transform.position - alsoDragOffset;
}
}
else
{
transform.position = new Vector2(Mathf.Clamp(transform.position.x, 10, Screen.width - 10), Mathf.Clamp(transform.position.y, 10, Screen.height - 10));
if (alsoDrag)
{
alsoDrag.position = transform.position - alsoDragOffset;
}
}
}
public override void OnPointerDown(PointerEventData eventData)
{
dragging = true;
}
public override void OnPointerUp(PointerEventData eventData)
{
dragging = false;
}
}