49 lines
1.2 KiB
C#
49 lines
1.2 KiB
C#
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<PortalManager>();
|
|
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<PortalManager>();
|
|
if (pm)
|
|
pm.UnregisterPortal(this);
|
|
return;
|
|
}
|
|
#endif
|
|
if (PortalManager.Instance)
|
|
PortalManager.Instance.UnregisterPortal(this);
|
|
}
|
|
}
|