Files
Convention-Unity/Convention/[Runtime]/Camera/SO/TextureRenderingCameraConfig.cs

44 lines
1.4 KiB
C#

using UnityEngine;
using UnityEngine.Experimental.Rendering;
namespace Convention
{
namespace SO
{
[CreateAssetMenu(fileName = "new TextureRenderingConfig", menuName = "Convention/Camera/TextureRenderingConfig", order = 0)]
public class TextureRenderingCameraConfig : CameraInitializerConfig
{
[Tooltip("Value Name"), Setting] private string m_RenderTextureScaleName = "RenderTextureScale";
private void OnEnable()
{
Reset();
}
public override void Reset()
{
base.Reset();
m_RenderTextureScaleName = "RenderTextureScale";
this.values[m_RenderTextureScaleName] = 1f;
}
private void OnValidate()
{
if (this.values.ContainsKey(m_RenderTextureScaleName) == false)
{
Reset();
}
}
public override void Invoke(Camera camera)
{
camera.targetTexture = new RenderTexture(
(int)(camera.scaledPixelWidth * this.values[m_RenderTextureScaleName]),
(int)(camera.scaledPixelHeight * this.values[m_RenderTextureScaleName]),
GraphicsFormat.R16G16B16A16_SFloat, GraphicsFormat.D24_UNorm_S8_UInt
);
}
}
}
}