feat: 梦境门、热力图、身体模块与终端 UI 全流程逻辑

Made-with: Cursor
This commit is contained in:
2026-03-28 19:37:52 +08:00
parent 215725d2a0
commit fc03cfdd4a
5 changed files with 86 additions and 20 deletions
@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
@@ -180,7 +180,7 @@ namespace AibisDream.FixSystem
{
HeatValue = targetHeatValue;
heatMapController.SetTemptureDirect(HeatValue);
heatMapController?.SetTemptureDirect(HeatValue);
}
public void ShowHeatMap()
@@ -1,4 +1,4 @@
using System;
using System;
using AibisDream.Framework;
using Newtonsoft.Json;
using UnityEngine;
@@ -24,6 +24,11 @@ namespace AibisDream.FixSystem
private Material _alarmMaterial;
private Material _originalMaterial; // 原材质
/// <summary>
/// Yarn 可能在 Start 里异步加载材质完成前就调用 ModuleHightLight,需记下来待加载后再套材质。
/// </summary>
private bool _wantsHighlight;
[SerializeField]
private SpriteRenderer targetSpriteRenderer; // 目标的 SpriteRenderer
@@ -93,6 +98,8 @@ namespace AibisDream.FixSystem
_alarmMaterial = alarmHandle.Result;
else
Debug.LogError("[BodyModule] Failed to load AlarmMaterial");
ApplyHighlightVisual();
}
#region
@@ -157,11 +164,16 @@ namespace AibisDream.FixSystem
public void Highlight(bool enable)
{
if (targetSpriteRenderer != null && _highlightMaterial != null &&
targetSpriteRenderer.material != _alarmMaterial)
{
targetSpriteRenderer.material = enable ? _highlightMaterial : _originalMaterial;
}
_wantsHighlight = enable;
ApplyHighlightVisual();
}
private void ApplyHighlightVisual()
{
if (targetSpriteRenderer == null || _highlightMaterial == null) return;
if (_alarmMaterial != null && targetSpriteRenderer.material == _alarmMaterial) return;
targetSpriteRenderer.material = _wantsHighlight ? _highlightMaterial : _originalMaterial;
}
public void Alarm(bool enable)