50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
using Gameplay.Performance;
|
|
using UnityEngine.Rendering;
|
|
using UnityEngine.Rendering.Universal;
|
|
namespace Gameplay.Vehicle.TireMark
|
|
{
|
|
// ReSharper disable once InconsistentNaming
|
|
public class DrawTireMarkRPF : ScriptableRendererFeature
|
|
{
|
|
|
|
private CustomPass _pass;
|
|
|
|
public override void Create()
|
|
{
|
|
_pass = new CustomPass();
|
|
_pass.renderPassEvent = RenderPassEvent.BeforeRendering;
|
|
}
|
|
|
|
public override void AddRenderPasses(ScriptableRenderer renderer,
|
|
ref RenderingData renderingData)
|
|
{
|
|
renderer.EnqueuePass(_pass);
|
|
}
|
|
|
|
class CustomPass : ScriptableRenderPass
|
|
{
|
|
|
|
public override void Execute(ScriptableRenderContext context,
|
|
ref RenderingData renderingData)
|
|
{
|
|
if (renderingData.cameraData.renderType != CameraRenderType.Base)
|
|
{
|
|
return;
|
|
}
|
|
if (TireMarkManager.instance == null) return;
|
|
if (TireMarkManager.instance.drawDatas.Count == 0) return;
|
|
if (!PerformanceManager.instance.data.enableTireMark) return;
|
|
|
|
var cmd = CommandBufferPool.Get("DrawTireMark");
|
|
// using (new ProfilingScope(cmd, new ProfilingSampler("DrawTireMark")))
|
|
{
|
|
TireMarkManager.instance.DrawDatas(cmd);
|
|
}
|
|
context.ExecuteCommandBuffer(cmd);
|
|
CommandBufferPool.Release(cmd);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|