Files
Northbound/Assets/FlatKit/[Render Pipeline] URP/RenderFeatures/Pixelation/PixelationSettings.cs
2026-01-25 11:27:33 +09:00

52 lines
1.7 KiB
C#

using System;
using ExternPropertyAttributes;
using UnityEngine;
using UnityEngine.Rendering.Universal;
// ReSharper disable RedundantDefaultMemberInitializer
namespace FlatKit {
[CreateAssetMenu(fileName = "PixelationSettings", menuName = "FlatKit/Pixelation Settings")]
public class PixelationSettings : ScriptableObject {
[Space] // Expandable.
#if !UNITY_2022_3_OR_NEWER
[ExternPropertyAttributes.InfoBox(
"Pixelation Effect requires Unity 2022.3 or newer. Please upgrade your Unity version to use this feature.",
ExternPropertyAttributes.EInfoBoxType.Warning)]
[Space]
#endif
[Tooltip("The number of pixels on the longer side of the screen.\nLower values result in a more pixelated image.")]
[Min(0)]
public int resolution = 320;
[HorizontalLine(1, EColor.Translucent)]
[Tooltip("The render stage at which the effect is applied. To exclude transparent objects, like water or " +
"UI elements, set this to \"Before Transparent\".")]
public RenderPassEvent renderEvent = RenderPassEvent.BeforeRenderingPostProcessing;
[Tooltip("Whether the effect should be applied in the Scene view as well as in the Game view. Please keep in " +
"mind that Unity always renders the scene view with the default Renderer settings of the URP config.")]
public bool applyInSceneView = true;
[HideInInspector]
public Material effectMaterial;
internal Action onSettingsChanged;
internal Action onReset;
private void OnValidate() {
onSettingsChanged?.Invoke();
}
private void Reset() {
onReset?.Invoke();
}
private void OnDestroy() {
onSettingsChanged = null;
onReset = null;
}
}
}