fix: ActivateExperimentObjects 用 FindObjectsOfType(includeInactive) 替代 GameObject.Find

medicalBox 初始 inactive,GameObject.Find 只能找活跃对象
改为 FindObjectsOfType<GameObject>(true) 遍历所有对象查找
This commit is contained in:
yangbear
2026-06-30 02:26:32 +08:00
parent 2bb79e452e
commit bc24cd922c
+15 -3
View File
@@ -303,7 +303,8 @@ public class PageController : MonoBehaviour
openingFlow.PlayOpeningFlow(() =>
{
Debug.Log("PageController: 片头动画完成,显示 ExperimentPanel");
ActivateExperimentObjects(); ShowPage(Page.Experiment);
ActivateExperimentObjects();
ShowPage(Page.Experiment);
var stepManager = FindObjectOfType<StepManager>();
if (stepManager != null)
@@ -337,8 +338,19 @@ public class PageController : MonoBehaviour
private void ActivateExperimentObjects()
{
Debug.Log("PageController: [ActivateExperimentObjects] 显示实验物件");
var medicalBox = GameObject.Find("medicalBox");
if (medicalBox != null) medicalBox.SetActive(true);
// 用 includeInactive 搜索,避免 medicalBox inactive 时 Find 返回 null
var allObjects = FindObjectsOfType<GameObject>(true);
foreach (var go in allObjects)
{
if (go.name == "medicalBox")
{
go.SetActive(true);
Debug.Log("PageController: medicalBox 已显示");
return;
}
}
Debug.LogWarning("PageController: 未找到 medicalBox");
}