Files
UmaViewer/Assets/Scripts/UI/UIElementDragger.cs
T
Katboi01 f928a802d7 Pose mode preparation.
Pose serialization, deserialization (no face)
UI handle system
2023-12-14 01:45:07 +01:00

48 lines
1.3 KiB
C#

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