refactor(srp): adopt scriptableobject render asset creation

This commit is contained in:
2026-04-21 20:33:57 +08:00
parent f3be86a52b
commit 0780e54efa
5 changed files with 189 additions and 66 deletions

View File

@@ -2310,14 +2310,21 @@ namespace Gameplay
public void Start()
{
UniversalRenderPipelineAsset asset =
new UniversalRenderPipelineAsset
{
rendererDataList =
new ScriptableRendererData[]
{
new UniversalRendererData()
}
};
ScriptableObject
.CreateInstance<UniversalRenderPipelineAsset>();
UniversalRendererData rendererData =
ScriptableObject
.CreateInstance<UniversalRendererData>();
if (asset != null &&
rendererData != null)
{
asset.rendererDataList =
new ScriptableRendererData[]
{
rendererData
};
}
GraphicsSettings.renderPipelineAsset = asset;
UniversalRenderPipelineAsset selectedAsset =
@@ -2356,15 +2363,24 @@ namespace Gameplay
{
public void Start()
{
GraphicsSettings.renderPipelineAsset =
new UniversalRenderPipelineAsset
UniversalRenderPipelineAsset asset =
ScriptableObject
.CreateInstance<UniversalRenderPipelineAsset>();
UniversalRendererData rendererData =
ScriptableObject
.CreateInstance<UniversalRendererData>();
if (asset == null ||
rendererData == null)
{
return;
}
asset.rendererDataList =
new ScriptableRendererData[]
{
rendererDataList =
new ScriptableRendererData[]
{
new UniversalRendererData()
}
rendererData
};
GraphicsSettings.renderPipelineAsset = asset;
}
}
@@ -2373,20 +2389,26 @@ namespace Gameplay
{
public void Start()
{
GraphicsSettings.renderPipelineAsset =
new UniversalRenderPipelineAsset
UniversalRenderPipelineAsset asset =
ScriptableObject
.CreateInstance<UniversalRenderPipelineAsset>();
UniversalRendererData rendererData =
ScriptableObject
.CreateInstance<UniversalRendererData>();
if (asset == null ||
rendererData == null)
{
return;
}
rendererData.mainScene =
UniversalMainSceneData.CreateOpaqueOnly();
asset.rendererDataList =
new ScriptableRendererData[]
{
rendererDataList =
new ScriptableRendererData[]
{
new UniversalRendererData
{
mainScene =
UniversalMainSceneData
.CreateOpaqueOnly()
}
}
rendererData
};
GraphicsSettings.renderPipelineAsset = asset;
}
}
@@ -2395,29 +2417,38 @@ namespace Gameplay
{
public void Start()
{
GraphicsSettings.renderPipelineAsset =
new UniversalRenderPipelineAsset
UniversalRenderPipelineAsset asset =
ScriptableObject
.CreateInstance<UniversalRenderPipelineAsset>();
UniversalRendererData rendererData =
ScriptableObject
.CreateInstance<UniversalRendererData>();
ColorScalePostProcessRendererFeature colorScaleFeature =
ScriptableObject
.CreateInstance<ColorScalePostProcessRendererFeature>();
if (asset == null ||
rendererData == null ||
colorScaleFeature == null)
{
return;
}
colorScaleFeature.colorScale = new Vector4(
1.08f,
0.96f,
0.92f,
1.0f);
rendererData.rendererFeatures =
new ScriptableRendererFeature[]
{
rendererDataList =
new ScriptableRendererData[]
{
new UniversalRendererData
{
rendererFeatures =
new ScriptableRendererFeature[]
{
new ColorScalePostProcessRendererFeature
{
colorScale = new Vector4(
1.08f,
0.96f,
0.92f,
1.0f)
}
}
}
}
colorScaleFeature
};
asset.rendererDataList =
new ScriptableRendererData[]
{
rendererData
};
GraphicsSettings.renderPipelineAsset = asset;
}
}
@@ -2426,22 +2457,33 @@ namespace Gameplay
{
public void Start()
{
GraphicsSettings.renderPipelineAsset =
new UniversalRenderPipelineAsset
UniversalRenderPipelineAsset asset =
ScriptableObject
.CreateInstance<UniversalRenderPipelineAsset>();
UniversalRendererData rendererData =
ScriptableObject
.CreateInstance<UniversalRendererData>();
DisableDirectionalShadowRendererFeature shadowlessFeature =
ScriptableObject
.CreateInstance<DisableDirectionalShadowRendererFeature>();
if (asset == null ||
rendererData == null ||
shadowlessFeature == null)
{
return;
}
rendererData.rendererFeatures =
new ScriptableRendererFeature[]
{
rendererDataList =
new ScriptableRendererData[]
{
new UniversalRendererData
{
rendererFeatures =
new ScriptableRendererFeature[]
{
new DisableDirectionalShadowRendererFeature()
}
}
}
shadowlessFeature
};
asset.rendererDataList =
new ScriptableRendererData[]
{
rendererData
};
GraphicsSettings.renderPipelineAsset = asset;
}
}