You've already forked taptap2024_GJ_chidouren
init
This commit is contained in:
41
Assets/Scripts/System/VolumeEffectUtils.cs
Normal file
41
Assets/Scripts/System/VolumeEffectUtils.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using Framework.Timer;
|
||||
using Unity.Mathematics;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
|
||||
public class VolumeEffectUtils : MonoBehaviour
|
||||
{
|
||||
public VolumeProfile volumeProfile;
|
||||
|
||||
#region ChromaticAberration Utils
|
||||
|
||||
private TimeHandler _aberrationHandler;
|
||||
private float _aberrationBaseIntensity;
|
||||
private float _aberrationTargetIntensity;
|
||||
public void SetAberration(float intensity , float time)
|
||||
{
|
||||
this._aberrationHandler?.Kill();
|
||||
this._aberrationTargetIntensity = intensity;
|
||||
if (this.volumeProfile.TryGet(out ChromaticAberration aberration))
|
||||
{
|
||||
this._aberrationBaseIntensity = aberration.intensity.value;
|
||||
aberration.active = this._aberrationBaseIntensity != 0 || this._aberrationTargetIntensity != 0;
|
||||
this._aberrationHandler = GameUpdateMgr.Instance.CreateTimer(time , UpdateAberration , f =>
|
||||
{
|
||||
aberration.intensity.value = math.lerp(this._aberrationBaseIntensity , this._aberrationTargetIntensity , f);
|
||||
});
|
||||
}
|
||||
}
|
||||
private void UpdateAberration()
|
||||
{
|
||||
if (this.volumeProfile.TryGet(out ChromaticAberration aberration))
|
||||
{
|
||||
aberration.intensity.value = this._aberrationTargetIntensity;
|
||||
aberration.active = aberration.intensity.value != 0;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user