FloatOverElement.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using UnityEngine;
  2. using UnityEngine.EventSystems;
  3. using UnityEngine.UI;
  4. namespace SRDebugger.UI.Other
  5. {
  6. [RequireComponent(typeof(RectTransform)), ExecuteAlways]
  7. public class FloatOverElement : UIBehaviour, ILayoutSelfController
  8. {
  9. public RectTransform CopyFrom;
  10. private DrivenRectTransformTracker _tracker;
  11. void Copy()
  12. {
  13. if (CopyFrom == null) return;
  14. _tracker.Clear();
  15. var r = GetComponent<RectTransform>();
  16. r.anchorMin = CopyFrom.anchorMin;
  17. r.anchorMax = CopyFrom.anchorMax;
  18. r.anchoredPosition = CopyFrom.anchoredPosition;
  19. r.offsetMin = CopyFrom.offsetMin;
  20. r.offsetMax = CopyFrom.offsetMax;
  21. r.sizeDelta = CopyFrom.sizeDelta;
  22. r.localScale = CopyFrom.localScale;
  23. r.pivot = CopyFrom.pivot;
  24. _tracker.Add(this, r, DrivenTransformProperties.All);
  25. }
  26. public void SetLayoutHorizontal()
  27. {
  28. Copy();
  29. }
  30. public void SetLayoutVertical()
  31. {
  32. Copy();
  33. }
  34. }
  35. }