|
- using System;
- using UnityEngine;
-
- public class OverlayLink : MonoBehaviour
- {
- public RectTransform OverlayParent
- {
- get
- {
- return this._overlays;
- }
- set
- {
- this._overlays = value;
- }
- }
-
- private void OnDestroy()
- {
- if (this._overlays != null)
- {
- UnityEngine.Object.Destroy(this._overlays.gameObject);
- }
- }
-
- private void Update()
- {
- if (this.CachedTransform.hasChanged)
- {
- this.UpdateOverlayPosition();
- this.CachedTransform.hasChanged = false;
- }
- }
-
- private void OnEnable()
- {
- if (this._overlays != null && !this._overlays.gameObject.activeSelf)
- {
- this._overlays.gameObject.SetActive(true);
- }
- this.UpdateOverlayPosition();
- }
-
- private void OnDisable()
- {
- if (this._overlays != null && this._overlays.gameObject.activeSelf)
- {
- this._overlays.gameObject.SetActive(false);
- }
- }
-
- public void UpdateOverlayPosition()
- {
- if (this._overlays != null)
- {
- Bounds bounds;
- if (this.CachedRenderer != null)
- {
- bounds = this.CachedRenderer.bounds;
- }
- else
- {
- if (!(this.CachedCollider != null))
- {
- UnityEngine.Debug.LogError("Was unable to update overlay position becuase the object it is linked to has not Renderer or Collider2D.");
- return;
- }
- bounds = this.CachedCollider.bounds;
- }
- this._overlays.position = bounds.center;
- this._overlays.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, bounds.extents.x * 2f);
- this._overlays.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, bounds.extents.y * 2f);
- }
- }
-
- private Transform CachedTransform
- {
- get
- {
- if (this._transform == null)
- {
- this._transform = base.GetComponent<Transform>();
- }
- return this._transform;
- }
- }
-
- private Renderer CachedRenderer
- {
- get
- {
- if (this._renderer == null)
- {
- this._renderer = base.gameObject.GetComponent<Renderer>();
- }
- return this._renderer;
- }
- }
-
- private Collider2D CachedCollider
- {
- get
- {
- if (this._collider == null)
- {
- this._collider = base.gameObject.GetComponent<Collider2D>();
- }
- return this._collider;
- }
- }
-
- private RectTransform _overlays;
-
- private Transform _transform;
-
- private Renderer _renderer;
-
- private Collider2D _collider;
- }
|