优化ui,谱面替换,以及科研模糊
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
namespace Qjjxk.Blur
|
||||
{
|
||||
[ExecuteAlways]
|
||||
public class MonitorDimension : MonoBehaviour
|
||||
{
|
||||
public RenderTexture captureRT;
|
||||
public CameraEvent cameraEvent;
|
||||
private List<BlurRawImage> _blurList;
|
||||
private CommandBuffer _cmdBuffer;
|
||||
private Camera _mainCamera;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_mainCamera = Camera.main!;
|
||||
captureRT = new RenderTexture(_mainCamera.pixelWidth, _mainCamera.pixelHeight, 0) { name = "CaptureRT" };
|
||||
_cmdBuffer = new CommandBuffer { name = "Capture" };
|
||||
_cmdBuffer.Blit(BuiltinRenderTextureType.CurrentActive, captureRT);
|
||||
cameraEvent = Application.isEditor ? CameraEvent.BeforeImageEffects : CameraEvent.AfterEverything;
|
||||
_mainCamera!.AddCommandBuffer(cameraEvent, _cmdBuffer);
|
||||
}
|
||||
|
||||
public void Register(BlurRawImage blurRawImage, bool isReg = true)
|
||||
{
|
||||
_blurList ??= new List<BlurRawImage>();
|
||||
if (isReg)
|
||||
{
|
||||
_blurList.TryAdd(blurRawImage);
|
||||
}
|
||||
else
|
||||
{
|
||||
_blurList.Remove(blurRawImage);
|
||||
if (_blurList.Count != 0) return;
|
||||
this.Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnRectTransformDimensionsChange()
|
||||
{
|
||||
if (!gameObject.scene.isLoaded || _blurList == null || _blurList.Count == 0) return;
|
||||
captureRT.Resize(_mainCamera.pixelWidth, _mainCamera.pixelHeight);
|
||||
foreach (var blurRawImage in _blurList)
|
||||
{
|
||||
blurRawImage.SetWindowSize();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user