Files
Cielonos/Assets/Plugins/FlexibleUI/FlexibleBlur/Scripts/BlurReferenceProvider.cs
SoulliesOfficial 649b7a5ddc 更新
2026-05-23 08:27:50 -04:00

61 lines
1.3 KiB
C#

using System.Collections.Generic;
using UnityEngine;
namespace JeffGrawAssets.FlexibleUI
{
[ExecuteAlways]
[DisallowMultipleComponent]
[RequireComponent(typeof(Canvas))]
public class BlurReferenceProvider : MonoBehaviour
{
#if UNITY_EDITOR
public const string CameraReferenceFieldName = nameof(cameraReference);
public const string FeatureNumberFieldName = nameof(featureNumber);
#endif
public static readonly Dictionary<Canvas, (Camera camera, int featureNumber)> CameraReferenceDict = new ();
[SerializeField] private Camera cameraReference;
public Camera CameraReference
{
get => cameraReference;
set
{
cameraReference = value;
UpdateDict();
}
}
[SerializeField] private int featureNumber;
public int FeatureNumber
{
get => featureNumber;
set
{
featureNumber = value;
UpdateDict();
}
}
private Canvas canvas;
void OnEnable()
{
canvas = GetComponent<Canvas>();
UpdateDict();
}
#if UNITY_EDITOR
void OnValidate() => OnEnable();
#endif
void OnDisable()
{
CameraReferenceDict.Remove(canvas);
}
void UpdateDict()
{
CameraReferenceDict[canvas] = (cameraReference, featureNumber);
}
}
}