ScriptableRenderPipeline对象里面包含了UniversalRenderData对象,可以通过在运行时设置UniversalRenderData对象的内容来获得特定的显示结果。
using UnityEngine;
using UnityEngine.Rendering.Universal;
public class SetUniversalRenderData : MonoBehaviour
{
[SerializeField]
UniversalRendererData renderData;
void Update()
{
if (Input.GetKeyDown(KeyCode.Alpha0))
{
renderData.opaqueLayerMask = 0;
//设置renderData的不透明层为“Nothing”
}
if (Input.GetKeyDown(KeyCode.Alpha1))
{
renderData.opaqueLayerMask = ~0;
//设置renderData的不透明层为“Everything”
}
if (Input.GetKeyDown(KeyCode.Alpha2))
{
ScreenSpaceOutlines screenSpaceOutlines = renderData.rendererFeatures[0] as ScreenSpaceOutlines;
if (screenSpaceOutlines != null)screenSpaceOutlines.SetColor(Color.blue);
//通过执行第一个render feature提供的SetColor方法来修改显示效果。
}
if (Input.GetKeyDown(KeyCode.Alpha3))
{
ScreenSpaceOutlines screenSpaceOutlines = renderData.rendererFeatures[0] as ScreenSpaceOutl

本文介绍如何在Unity中通过ScriptableRenderPipeline使用UniversalRenderData实现动态修改不透明层、渲染特征颜色及状态,展示了如何通过键盘输入切换显示效果。
最低0.47元/天 解锁文章
2441

被折叠的 条评论
为什么被折叠?



