38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
using UnityEngine;
|
|
using UnityEngine.Rendering.Universal;
|
|
|
|
namespace NBF
|
|
{
|
|
public static class CameraUtils
|
|
{
|
|
public static void SetOverlay(Camera camera, CameraRenderType cameraRenderType = CameraRenderType.Overlay)
|
|
{
|
|
var stageCameraData = camera.GetUniversalAdditionalCameraData();
|
|
if (stageCameraData != null)
|
|
{
|
|
stageCameraData.renderType = cameraRenderType;
|
|
}
|
|
}
|
|
|
|
|
|
public static void AddStack(this Camera camera, Camera overlayCamera)
|
|
{
|
|
var MainCameraData = camera.GetUniversalAdditionalCameraData();
|
|
if (!MainCameraData.cameraStack.Contains(overlayCamera)) // 防止重复添加
|
|
{
|
|
SetOverlay(overlayCamera);
|
|
MainCameraData.cameraStack.Add(overlayCamera);
|
|
}
|
|
}
|
|
|
|
public static void RemoveStack(this Camera camera, Camera overlayCamera)
|
|
{
|
|
var MainCameraData = camera.GetUniversalAdditionalCameraData();
|
|
if (MainCameraData.cameraStack.Contains(overlayCamera))
|
|
{
|
|
MainCameraData.cameraStack.Remove(overlayCamera);
|
|
SetOverlay(overlayCamera, CameraRenderType.Base);
|
|
}
|
|
}
|
|
}
|
|
} |