首次提交
This commit is contained in:
38
Assets/Scripts/Common/Utils/CameraUtils.cs
Normal file
38
Assets/Scripts/Common/Utils/CameraUtils.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user