feat: woman移动交互 + medicalBox显示 + ReturnToHome场景重置

- TouchPositionHandler: 点击touchArray球体→woman移动到womanPointArray对应位置
- medicalBox: 初始隐藏,实验开始后显示
- ReturnToHome: 重置场景(恢复man/man2, 隐藏woman/manInjury/medicalBox, 切回主摄像机, 重置Animator)
- ActivateExperimentObjects(): 实验启动时激活实验物件
This commit is contained in:
yangbear
2026-06-30 02:19:13 +08:00
parent cee3dd097c
commit 7100305765
91 changed files with 1251 additions and 63087 deletions
+38 -2
View File
@@ -303,7 +303,7 @@ public class PageController : MonoBehaviour
openingFlow.PlayOpeningFlow(() =>
{
Debug.Log("PageController: 片头动画完成,显示 ExperimentPanel");
ShowPage(Page.Experiment);
ActivateExperimentObjects(); ShowPage(Page.Experiment);
var stepManager = FindObjectOfType<StepManager>();
if (stepManager != null)
@@ -331,9 +331,45 @@ public class PageController : MonoBehaviour
}
}
/// <summary>
/// 激活实验场景物件(medicalBox等),在动画完成后调用
/// </summary>
private void ActivateExperimentObjects()
{
Debug.Log("PageController: [ActivateExperimentObjects] 显示实验物件");
var medicalBox = GameObject.Find("medicalBox");
if (medicalBox != null) medicalBox.SetActive(true);
}
public void ReturnToHome()
{
Debug.Log("PageController: [ReturnToHome] 返回首页");
Debug.Log("PageController: [ReturnToHome] 返回首页并重置场景");
// 恢复 man 和 man2
var man = GameObject.Find("man");
if (man != null) man.SetActive(true);
var man2 = GameObject.Find("man2");
if (man2 != null) man2.SetActive(true);
// 隐藏实验专用物件
var woman = GameObject.Find("woman");
if (woman != null) woman.SetActive(false);
var manInjury = GameObject.Find("manInjury");
if (manInjury != null) manInjury.SetActive(false);
var medicalBox = GameObject.Find("medicalBox");
if (medicalBox != null) medicalBox.SetActive(false);
// 恢复主摄像机
var mainCam = Camera.main;
if (mainCam != null) mainCam.enabled = true;
var cam2 = GameObject.Find("camera2");
if (cam2 != null) { var c = cam2.GetComponent<Camera>(); if (c != null) c.enabled = false; }
// 重置 Animator 参数
var manAnim = man != null ? man.GetComponent<Animator>() : null;
if (manAnim != null) { manAnim.SetBool("IsStart", false); manAnim.SetBool("IsFull", false); }
ShowPage(Page.Home);
}