Camera_UI3D.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using UnityEngine;
  2. using System.Collections;
  3. public class Camera_UI3D : Singleton<Camera_UI3D>
  4. {
  5. private Camera mCamera;
  6. private Canvas3D mCanvas;
  7. public override void Init()
  8. {
  9. EventMgr.AddEventListener<bool>(ECoreEventType.EID_BATTLE_SWITCH_MAP, OnSwitchMap);
  10. EventMgr.AddEventListener<bool>(ECoreEventType.EID_SHOW_BATTLE_SCENE, OnShowBattleScene);
  11. }
  12. public override void UnInit()
  13. {
  14. base.UnInit();
  15. EventMgr.RemoveEventListener<bool>(ECoreEventType.EID_BATTLE_SWITCH_MAP, OnSwitchMap);
  16. EventMgr.RemoveEventListener<bool>(ECoreEventType.EID_SHOW_BATTLE_SCENE, OnShowBattleScene);
  17. }
  18. public Camera GetCurrentCamera()
  19. {
  20. return mCamera;
  21. }
  22. public void SetCameraEnabled(bool enabled)
  23. {
  24. if (mCamera != null)
  25. mCamera.enabled = enabled;
  26. }
  27. public Canvas3DImpl GetCurrentCanvas()
  28. {
  29. return Canvas3DImpl.GetInstance();
  30. }
  31. private void OnSwitchMap(CoreEvent<bool> ce)
  32. {
  33. if (mCamera != null)
  34. {
  35. GameObject.Destroy(mCamera.gameObject);
  36. mCamera = null;
  37. }
  38. }
  39. private void OnShowBattleScene(CoreEvent<bool> ce)
  40. {
  41. if (mCamera != null)
  42. {
  43. mCamera.enabled = ce.Data;
  44. }
  45. }
  46. public void Reset()
  47. {
  48. GameObject cameraObj = new GameObject("Camera_UI3D");
  49. cameraObj.transform.SetParent(BattleCamera.Instance.CamContainer.transform);
  50. mCamera = cameraObj.AddComponent<Camera>();
  51. mCamera.CopyFrom(BattleCamera.Instance.RealCamera);
  52. //mCamera.orthographic = true;
  53. //mCamera.orthographicSize = 8;
  54. mCamera.cullingMask = LayerMask.GetMask("3DUI");
  55. mCamera.depth = mCamera.depth + 1;
  56. mCamera.clearFlags = CameraClearFlags.Nothing;
  57. cameraObj.tag = "Untagged";
  58. mCanvas = cameraObj.AddComponent<Canvas3D>();
  59. cameraObj.transform.localPosition = new Vector3(8.822f, 4.267f, -6);
  60. cameraObj.transform.localScale = Vector3.one;
  61. cameraObj.transform.localRotation = Quaternion.Euler(36.2f,-57,0);
  62. }
  63. public void Clear()
  64. {
  65. mCamera = null;
  66. mCanvas = null;
  67. }
  68. }