feat: woman移动交互 + medicalBox显示 + ReturnToHome场景重置
- TouchPositionHandler: 点击touchArray球体→woman移动到womanPointArray对应位置 - medicalBox: 初始隐藏,实验开始后显示 - ReturnToHome: 重置场景(恢复man/man2, 隐藏woman/manInjury/medicalBox, 切回主摄像机, 重置Animator) - ActivateExperimentObjects(): 实验启动时激活实验物件
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 挂在 touchArray 的每个子球体上,点击时把 woman 移动到 womanPointArray 对应位置。
|
||||
/// 字段用 public 方便代码直接赋值。
|
||||
/// </summary>
|
||||
public class TouchPositionHandler : MonoBehaviour
|
||||
{
|
||||
public Transform targetPosition;
|
||||
public GameObject womanObject;
|
||||
|
||||
private void OnMouseDown()
|
||||
{
|
||||
if (womanObject != null && targetPosition != null)
|
||||
{
|
||||
womanObject.transform.position = targetPosition.position;
|
||||
womanObject.transform.rotation = targetPosition.rotation;
|
||||
Debug.Log($"[TouchPosition] woman 移动到 {targetPosition.name} ({targetPosition.position})");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning($"[TouchPosition] {name}: womanObject 或 targetPosition 为空");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aa18d349de8cc4564984a4f44c712138
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user