Merge branch 'develop' into 3.28全流程拉通

This commit is contained in:
2026-03-30 14:28:45 +08:00
6 changed files with 949 additions and 929 deletions
File diff suppressed because it is too large Load Diff
@@ -159,7 +159,7 @@ namespace AibisDream.FixSystem
bodyModuleSystem.SwitchModuleGroup(moduleState);
}
if (cablePanel != null && !cablePanel.IsSystemOn())
if (cablePanel != null && !FixPanelSystem.Instance.IsSystemOn)
{
// 切换相机
yield return CameraKit.Instance.SwitchCamera(CameraEnum.BodyModuleCenter);
@@ -76,6 +76,11 @@ namespace AibisDream.FixSystem
#region -
public void Initialize(bool isSystemOn)
{
panelLight.intensity = isSystemOn ? panelLightIntensity : 0f;
}
/// <summary>
/// 设置灯光状态
/// </summary>
@@ -89,6 +94,14 @@ namespace AibisDream.FixSystem
}
}
/// <summary>
/// 压暗光照强度
/// </summary>
public void DarkenLights()
{
panelLight.intensity = 0f;
}
/// <summary>
/// 设置环境灯闪烁状态
/// </summary>
@@ -143,14 +156,6 @@ namespace AibisDream.FixSystem
}
}
/// <summary>
/// 启动面板灯光序列(纯灯光效果,不包含其他面板的协调)
/// </summary>
public IEnumerator StartPanelLightSequence()
{
yield return StartCoroutine(PanelLightStartSequence());
}
#endregion
#region -
@@ -316,7 +321,7 @@ namespace AibisDream.FixSystem
/// <summary>
/// 面板灯启动序列
/// </summary>
private IEnumerator PanelLightStartSequence()
public IEnumerator PanelLightStartSequence()
{
if (panelLight == null) yield break;
@@ -13,6 +13,11 @@ namespace AibisDream.FixSystem
/// </summary>
public class FixPanelSystem : Singleton<FixPanelSystem>
{
private void Start()
{
InitLight();
}
private void OnEnable()
{
RegisterCanvasCamera();
@@ -50,6 +55,9 @@ namespace AibisDream.FixSystem
#region
[Header("光照系统")]
[SerializeField] private bool isSystemOn = false;
public bool IsSystemOn => isSystemOn;
[SerializeField] private FixPanelLight panelLight;
public FixPanelLight PanelLight => panelLight;
@@ -57,6 +65,17 @@ namespace AibisDream.FixSystem
[SerializeField] private RepairSystemManager repairSystemManager;
public RepairSystemManager RepairSystemManager => repairSystemManager;
private void InitLight()
{
panelLight.Initialize(isSystemOn);
GetRepairPanel<CablePanel>().InitLight(isSystemOn);
// 无光环境下屏幕也不能亮
if (!isSystemOn)
{
screenPanel.gameObject.SetActive(false);
}
}
#endregion
#region
@@ -76,8 +95,11 @@ namespace AibisDream.FixSystem
// 2. 再启动灯光序列
if (panelLight != null)
{
yield return panelLight.StartPanelLightSequence();
yield return panelLight.PanelLightStartSequence();
}
// 3. 再启动屏幕面板
screenPanel.gameObject.SetActive(true);
}
/// <summary>
@@ -52,7 +52,6 @@ namespace AibisDream.FixSystem
private void Start()
{
InitComponentRefs();
panelLight?.Initialize();
InitSystem();
LoadCableState();
@@ -64,12 +63,18 @@ namespace AibisDream.FixSystem
plugRef.OnPullUpSocket -= OnPullUpSocket;
plugRef.OnPlugPointerDown -= OnPlugPoinerDown;
}
private void InitComponentRefs()
{
BodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
}
public void InitLight(bool isLightOn)
{
panelLight?.Initialize(isLightOn);
}
private void InitSystem()
{
plugRef.OnInsertSocket += OnInsertSocket;
@@ -279,14 +284,6 @@ namespace AibisDream.FixSystem
#region -
/// <summary>
/// 检查系统是否开启
/// </summary>
public bool IsSystemOn()
{
return panelLight != null && panelLight.IsSystemOn();
}
/// <summary>
/// 启动系统
/// </summary>
@@ -56,9 +56,9 @@ namespace AibisDream.FixSystem
#region
[SerializeField] private bool isSystemOn = false;
private bool isSystemStarting = false;
private Coroutine smallLightsBlinkCoroutine;
private bool isLightOn;
#endregion
@@ -95,13 +95,14 @@ namespace AibisDream.FixSystem
/// <summary>
/// 初始化灯光系统
/// </summary>
public void Initialize()
public void Initialize(bool isLightOn)
{
this.isLightOn = isLightOn;
// 初始化SpriteRenderer引用
InitializeSpriteRenderers();
// 初始化系统状态
if (isSystemOn)
if (isLightOn)
{
InitializeSystemOn();
}
@@ -160,20 +161,11 @@ namespace AibisDream.FixSystem
#region -
/// <summary>
/// 检查系统是否开启
/// </summary>
public bool IsSystemOn()
{
return isSystemOn;
}
/// <summary>
/// 设置系统电源状态
/// </summary>
public void SetSystemPower(bool isOn)
{
isSystemOn = isOn;
if (!isOn)
{
TurnOffAllLights();
@@ -189,10 +181,10 @@ namespace AibisDream.FixSystem
/// </summary>
public IEnumerator StartSystem()
{
if (isSystemStarting || isSystemOn) yield break;
if (isSystemStarting || isLightOn) yield break;
isSystemStarting = true;
yield return StartCoroutine(SystemStartSequence());
yield return SystemStartSequence();
isSystemStarting = false;
}
@@ -446,7 +438,7 @@ namespace AibisDream.FixSystem
{
while (true)
{
if (!isSystemOn)
if (!isLightOn)
{
TurnOffAllSmallLights();
}