Files
2025TapTapGameJam/Assets/Script/Gameplay/Facility/HidePlatformController.cs

76 lines
2.5 KiB
C#

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<ColliderEditableController>();
meshRenderEditableController = GetComponent<MeshRenderEditableController>();
}
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;
}
}
}
}
}