using UnityEngine; [ExecuteInEditMode, DefaultExecutionOrder(1)] public class Portal : MonoBehaviour { [SerializeField, Range(0, 2)] private int _id; [SerializeField, Range(0, 1)] private float _oval; public int ID => _id; public float Oval => _oval; private void OnDrawGizmos() { Gizmos.matrix = transform.localToWorldMatrix; Gizmos.color = Color.cyan; Gizmos.DrawWireCube(Vector3.zero, new Vector3(1, 1, 0)); } void OnEnable() { #if UNITY_EDITOR if (!Application.isPlaying) { PortalManager pm = FindFirstObjectByType(); if (pm) pm.RegisterPortal(this); return; } #endif if (PortalManager.Instance) PortalManager.Instance.RegisterPortal(this); } void OnDisable() { #if UNITY_EDITOR if (!Application.isPlaying) { PortalManager pm = FindFirstObjectByType(); if (pm) pm.UnregisterPortal(this); return; } #endif if (PortalManager.Instance) PortalManager.Instance.UnregisterPortal(this); } }