using System; using UnityEngine; using Script.Gameplay.Edit; namespace Script.Gameplay.Facility { [RequireComponent(typeof(ColliderEditableController))] [RequireComponent(typeof(MeshRenderEditableController))] public class HidePlatformController : BaseFacilityController { public enum DisappearType { ReceiveSignal, NoReceiveSignal } [Tooltip("平台消失的类型")] [SerializeField] private DisappearType disappearType; private ColliderEditableController colliderEditableController; private MeshRenderEditableController meshRenderEditableController; private void Awake() { colliderEditableController = GetComponent(); meshRenderEditableController = GetComponent(); } private void Start() { if (disappearType == DisappearType.NoReceiveSignal) { colliderEditableController.IsOpenInEditor = true; meshRenderEditableController.IsOpenInEditor = true; } if (disappearType == DisappearType.ReceiveSignal) { colliderEditableController.IsOpenInEditor = false; meshRenderEditableController.IsOpenInEditor = false; } } public override void OnSignalReceived(bool active, GameObject sender) { base.OnSignalReceived(active, sender); if (disappearType == DisappearType.ReceiveSignal) { if (active) { meshRenderEditableController.IsOpenInEditor = true; colliderEditableController.IsOpenInEditor = true; } else { meshRenderEditableController.IsOpenInEditor = false; colliderEditableController.IsOpenInEditor = false; } } if (disappearType == DisappearType.NoReceiveSignal) { if (active) { meshRenderEditableController.IsOpenInEditor = false; colliderEditableController.IsOpenInEditor = false; } else { meshRenderEditableController.IsOpenInEditor = true; colliderEditableController.IsOpenInEditor = true; } } } } }