Merged in feature/UIWindowBase_transform_changes (pull request #69)

UIWindowBase can optionally be set to a different transform.

Approved-by: Simon Jackson
pull/413/head
duz1000 2020-05-22 09:43:03 +00:00 committed by Simon Jackson
commit 47425f030a
1 changed files with 14 additions and 6 deletions

View File

@ -17,19 +17,27 @@ namespace UnityEngine.UI.Extensions
[AddComponentMenu("UI/Extensions/UI Window Base")] [AddComponentMenu("UI/Extensions/UI Window Base")]
public class UIWindowBase : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler public class UIWindowBase : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{ {
RectTransform m_transform = null;
private bool _isDragging = false; private bool _isDragging = false;
public static bool ResetCoords = false; public static bool ResetCoords = false;
private Vector3 m_originalCoods = Vector3.zero; private Vector3 m_originalCoods = Vector3.zero;
private Canvas m_canvas; private Canvas m_canvas;
private RectTransform m_canvasRectTransform; private RectTransform m_canvasRectTransform;
public int KeepWindowInCanvas = 5; // # of pixels of the window that must stay inside the canvas view.
[Tooltip("Number of pixels of the window that must stay inside the canvas view.")]
public int KeepWindowInCanvas = 5;
[Tooltip("The transform that is moved when dragging, can be left empty in which case its own transform is used.")]
public RectTransform RootTransform = null;
// Use this for initialization // Use this for initialization
void Start() void Start()
{ {
m_transform = GetComponent<RectTransform>(); if (RootTransform == null)
m_originalCoods = m_transform.position; {
RootTransform = GetComponent<RectTransform>();
}
m_originalCoods = RootTransform.position;
m_canvas = GetComponentInParent<Canvas>(); m_canvas = GetComponentInParent<Canvas>();
m_canvasRectTransform = m_canvas.GetComponent<RectTransform>(); m_canvasRectTransform = m_canvas.GetComponent<RectTransform>();
} }
@ -45,7 +53,7 @@ namespace UnityEngine.UI.Extensions
if (_isDragging) if (_isDragging)
{ {
var delta = ScreenToCanvas(eventData.position) - ScreenToCanvas(eventData.position - eventData.delta); var delta = ScreenToCanvas(eventData.position) - ScreenToCanvas(eventData.position - eventData.delta);
m_transform.localPosition += delta; RootTransform.localPosition += delta;
} }
} }
@ -69,7 +77,7 @@ namespace UnityEngine.UI.Extensions
void resetCoordinatePosition() void resetCoordinatePosition()
{ {
m_transform.position = m_originalCoods; RootTransform.position = m_originalCoods;
ResetCoords = false; ResetCoords = false;
} }