fix: Camera.main→GameObject.Find(Main Camera) 解决摄像机不同步

根因: Camera.main在SwitchToCamera2禁用主摄像机后返回null,
PlayOpeningFlow/ReturnToHome无法重新启用主摄像机。
全部改用GameObject.Find("Main Camera")按名字查找。
This commit is contained in:
yangbear
2026-06-30 14:55:40 +08:00
parent 3ebe010dfd
commit 039099e1f6
2 changed files with 17 additions and 33 deletions
+5 -8
View File
@@ -362,13 +362,11 @@ public class PageController : MonoBehaviour
{
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");
@@ -376,13 +374,12 @@ public class PageController : MonoBehaviour
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; }
// 用名字找主摄像机(Camera.main 在禁用后返回 null
var mainGo = GameObject.Find("Main Camera");
if (mainGo != null) { var c = mainGo.GetComponent<Camera>(); if (c != null) c.enabled = true; }
var cam2Go = GameObject.Find("camera2");
if (cam2Go != null) { var c = cam2Go.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); }