EnvironmentManager.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. bgObject = GameObject.Find("__GameMain__/BG");
  25. bg = bgObject.transform;
  26. cameraObject = new GameObject("subCamera");
  27. subCamera = cameraObject.AddComponent<Camera>();
  28. subCamera.CopyFrom(Camera.main);
  29. cameraObject.SetActive(true);
  30. subCamera.clearFlags = CameraClearFlags.Depth;
  31. subCamera.cullingMask = 256;
  32. subCamera.depth = 1f;
  33. subCamera.transform.parent = GameMain.Instance.MainCamera.transform;
  34. bgObject.SetActive(true);
  35. GameMain.Instance.BgMgr.ChangeBg("Theater");
  36. GameMain.Instance.MainCamera.GetComponent<Camera>().backgroundColor = new Color(0.0f, 0.0f, 0.0f);
  37. UltimateOrbitCamera UOCamera = Utility.GetFieldValue<CameraMain, UltimateOrbitCamera>(GameMain.Instance.MainCamera, "m_UOCamera");
  38. UOCamera.enabled = true;
  39. GameMain.Instance.MainLight.Reset();
  40. GameMain.Instance.CharacterMgr.ResetCharaPosAll();
  41. CameraMain cameraMain = GameMain.Instance.MainCamera;
  42. cameraMain.Reset(CameraMain.CameraType.Target, true);
  43. cameraMain.SetTargetPos(new Vector3(0f, 0.9f, 0f), true);
  44. cameraMain.SetDistance(3f, true);
  45. }
  46. public void Deactivate()
  47. {
  48. GameObject.Destroy(cameraObject);
  49. GameObject.Destroy(subCamera);
  50. }
  51. }
  52. }