76 lines
2.5 KiB
C#
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;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|