EnvironmentManager.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace COM3D2.MeidoPhotoStudio.Plugin
  5. {
  6. public class EnvironmentManager
  7. {
  8. private GameObject cameraObject;
  9. private Camera subCamera;
  10. private GameObject bgObject;
  11. private Transform bg;
  12. public void ChangeBackground(string assetName)
  13. {
  14. GameMain.Instance.BgMgr.ChangeBg(assetName);
  15. if (assetName == "KaraokeRoom")
  16. {
  17. bg.transform.position = bgObject.transform.position;
  18. bg.transform.localPosition = new Vector3(1f, 0f, 4f);
  19. bg.transform.localRotation = Quaternion.Euler(new Vector3(0f, 90f, 0f));
  20. }
  21. }
  22. public void Initialize()
  23. {
  24. if (!bgObject)
  25. {
  26. bgObject = GameObject.Find("__GameMain__/BG");
  27. bg = bgObject.transform;
  28. }
  29. GameObject.Destroy(cameraObject);
  30. GameObject.Destroy(subCamera);
  31. if (cameraObject == null)
  32. {
  33. cameraObject = new GameObject("subCamera");
  34. subCamera = cameraObject.AddComponent<Camera>();
  35. subCamera.CopyFrom(Camera.main);
  36. cameraObject.SetActive(true);
  37. subCamera.clearFlags = CameraClearFlags.Depth;
  38. subCamera.cullingMask = 256;
  39. subCamera.depth = 1f;
  40. subCamera.transform.parent = GameMain.Instance.MainCamera.transform;
  41. }
  42. bgObject.SetActive(true);
  43. GameMain.Instance.BgMgr.ChangeBg("Theater");
  44. GameMain.Instance.MainCamera.GetComponent<Camera>().backgroundColor = new Color(0.0f, 0.0f, 0.0f);
  45. UltimateOrbitCamera UOCamera = Utility.GetFieldValue<CameraMain, UltimateOrbitCamera>(GameMain.Instance.MainCamera, "m_UOCamera");
  46. UOCamera.enabled = true;
  47. GameMain.Instance.MainLight.Reset();
  48. GameMain.Instance.CharacterMgr.ResetCharaPosAll();
  49. CameraMain cameraMain = GameMain.Instance.MainCamera;
  50. cameraMain.Reset(CameraMain.CameraType.Target, true);
  51. cameraMain.SetTargetPos(new Vector3(0f, 0.9f, 0f), true);
  52. cameraMain.SetDistance(3f, true);
  53. }
  54. }
  55. }