93 lines
2.3 KiB
C#
93 lines
2.3 KiB
C#
using UnityEngine;
|
|
using UnityEngine.Rendering.Universal;
|
|
|
|
namespace PhxhSDK
|
|
{
|
|
public class CameraManager : Singlenton<CameraManager>, IInitable
|
|
{
|
|
private Camera _mainCamera;
|
|
|
|
public Camera MainCamera
|
|
{
|
|
get
|
|
{
|
|
if (_mainCamera == null)
|
|
{
|
|
_mainCamera = Camera.main;
|
|
}
|
|
|
|
return _mainCamera;
|
|
}
|
|
}
|
|
|
|
public Camera UICamera
|
|
{
|
|
get { return UIRoot.Instance.UICamera; }
|
|
}
|
|
|
|
public Camera SkillCamera { get; private set; }
|
|
|
|
public Camera CreateCamera(string name, string tag = null)
|
|
{
|
|
var go = new GameObject(name);
|
|
var camera = go.AddComponent<Camera>();
|
|
if (tag != null)
|
|
{
|
|
camera.tag = tag;
|
|
}
|
|
return camera;
|
|
}
|
|
public void DestroyCamera(Camera camera)
|
|
{
|
|
if (camera != null)
|
|
{
|
|
GameObject.Destroy(camera.gameObject);
|
|
}
|
|
}
|
|
|
|
public void ReRenderAll()
|
|
{
|
|
foreach (var c in Camera.allCameras)
|
|
{
|
|
var oldEnabled = c.enabled;
|
|
c.enabled = true;
|
|
c.Render();
|
|
c.enabled = oldEnabled;
|
|
}
|
|
}
|
|
|
|
public void Init()
|
|
{
|
|
if (MainCamera == null)
|
|
{
|
|
CreateCamera("Main Camera", "MainCamera");
|
|
}
|
|
if (MainCamera != null)
|
|
{
|
|
GameObject.DontDestroyOnLoad(MainCamera.gameObject);
|
|
}
|
|
|
|
SkillCamera = GameObject.Find("SkillCamera").GetComponent<Camera>();
|
|
}
|
|
|
|
public void SetMainCameraActive(bool isActive)
|
|
{
|
|
_mainCamera?.gameObject.SetActive(isActive);
|
|
}
|
|
|
|
// public void AddCameraStack(Camera camera)
|
|
// {
|
|
// if(camera == null)
|
|
// return;
|
|
// var additionalData = camera.GetComponent<UniversalAdditionalCameraData>();
|
|
// additionalData.cameraStack.Clear();
|
|
// additionalData.cameraStack.Add(UICamera);
|
|
// additionalData.cameraStack.Add(SkillCamera);
|
|
// }
|
|
|
|
public void Release()
|
|
{
|
|
|
|
}
|
|
}
|
|
} |