NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/State/LevelBaseState.cs

62 lines
1.7 KiB
C#
Raw Normal View History

2023-08-22 19:08:45 +08:00
using Framework;
2024-07-01 13:08:37 +08:00
using Gameplay.Guide;
2023-08-22 19:08:45 +08:00
using TGS;
using UnityEngine;
namespace Gameplay.Level
{
2023-10-19 15:00:19 +08:00
public abstract class LevelBaseState : IState
2023-08-22 19:08:45 +08:00
{
protected Level _level;
public LevelBaseState(Level level)
{
_level = level;
}
public void OnEnter()
{
InputManager.Instance.OnClick += _OnClick;
_OnEnter();
}
public void OnUpdate(float deltaTime)
{
_OnUpdate(deltaTime);
}
public void OnExit()
{
_OnExit();
// _level.Map.TerrainGridSystem.OnCellClick -= _OnCellClick;
InputManager.Instance.OnClick -= _OnClick;
}
protected abstract void _OnEnter();
protected abstract void _OnUpdate(float deltaTime);
protected abstract void _OnExit();
protected abstract void _OnCellClick(TerrainGridSystem tgs, int cellIndex, int buttonIndex);
protected abstract void _OnClick(Vector2 screenPosition);
2024-07-01 13:08:37 +08:00
/// <summary>
/// 检查能否点击地板
/// </summary>
protected void CheckCellClick(TerrainGridSystem tgs, int cellIndex, int buttonIndex)
{
if (GuideManager.Instance.IsGuiding && // 在新手引导中
2024-07-03 14:07:54 +08:00
GuideManager.Instance.IsControlFloor && // 是否控制地板点击
2024-07-01 13:08:37 +08:00
GuideManager.Instance.FloorIndex != cellIndex) // 点击的不是指定地板
{
return;
}
2024-07-01 16:19:07 +08:00
EventManager.Instance.Send(EventManager.EventName.Guide_ClickFloor);
2024-07-11 15:09:44 +08:00
DebugUtil.LogG($"用户点击格子:{cellIndex}");
2024-07-01 13:08:37 +08:00
_OnCellClick(tgs, cellIndex, buttonIndex);
}
2023-08-22 19:08:45 +08:00
}
}