Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 

120 Zeilen
2.3 KiB

  1. using System;
  2. using UnityEngine;
  3. public class OverlayLink : MonoBehaviour
  4. {
  5. public RectTransform OverlayParent
  6. {
  7. get
  8. {
  9. return this._overlays;
  10. }
  11. set
  12. {
  13. this._overlays = value;
  14. }
  15. }
  16. private void OnDestroy()
  17. {
  18. if (this._overlays != null)
  19. {
  20. UnityEngine.Object.Destroy(this._overlays.gameObject);
  21. }
  22. }
  23. private void Update()
  24. {
  25. if (this.CachedTransform.hasChanged)
  26. {
  27. this.UpdateOverlayPosition();
  28. this.CachedTransform.hasChanged = false;
  29. }
  30. }
  31. private void OnEnable()
  32. {
  33. if (this._overlays != null && !this._overlays.gameObject.activeSelf)
  34. {
  35. this._overlays.gameObject.SetActive(true);
  36. }
  37. this.UpdateOverlayPosition();
  38. }
  39. private void OnDisable()
  40. {
  41. if (this._overlays != null && this._overlays.gameObject.activeSelf)
  42. {
  43. this._overlays.gameObject.SetActive(false);
  44. }
  45. }
  46. public void UpdateOverlayPosition()
  47. {
  48. if (this._overlays != null)
  49. {
  50. Bounds bounds;
  51. if (this.CachedRenderer != null)
  52. {
  53. bounds = this.CachedRenderer.bounds;
  54. }
  55. else
  56. {
  57. if (!(this.CachedCollider != null))
  58. {
  59. UnityEngine.Debug.LogError("Was unable to update overlay position becuase the object it is linked to has not Renderer or Collider2D.");
  60. return;
  61. }
  62. bounds = this.CachedCollider.bounds;
  63. }
  64. this._overlays.position = bounds.center;
  65. this._overlays.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, bounds.extents.x * 2f);
  66. this._overlays.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, bounds.extents.y * 2f);
  67. }
  68. }
  69. private Transform CachedTransform
  70. {
  71. get
  72. {
  73. if (this._transform == null)
  74. {
  75. this._transform = base.GetComponent<Transform>();
  76. }
  77. return this._transform;
  78. }
  79. }
  80. private Renderer CachedRenderer
  81. {
  82. get
  83. {
  84. if (this._renderer == null)
  85. {
  86. this._renderer = base.gameObject.GetComponent<Renderer>();
  87. }
  88. return this._renderer;
  89. }
  90. }
  91. private Collider2D CachedCollider
  92. {
  93. get
  94. {
  95. if (this._collider == null)
  96. {
  97. this._collider = base.gameObject.GetComponent<Collider2D>();
  98. }
  99. return this._collider;
  100. }
  101. }
  102. private RectTransform _overlays;
  103. private Transform _transform;
  104. private Renderer _renderer;
  105. private Collider2D _collider;
  106. }