feat(HidePlatform): 实现通过信号控制的隐藏平台
This commit is contained in:
76
Assets/Script/Gameplay/Facility/HidePlatformController.cs
Normal file
76
Assets/Script/Gameplay/Facility/HidePlatformController.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f28214d1465c43208546605ea8a619db
|
||||
timeCreated: 1761355078
|
||||
Reference in New Issue
Block a user