小编Jam*_*uld的帖子

Unity 后处理 PostProcessEffectRenderer 显示在编辑器中但不在构建中

将 PostProcessEffectRenderer 的实现添加到 Unity 后处理堆栈后,效果在 Unity 编辑器中完美运行,但不会在构建的游戏中显示。

对构建质量的更改无效,使用最高质量设置时不会显示效果,为 Windows x86_64 构建。

灰度.cs

using System;
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;

[Serializable]
[PostProcess(typeof(GrayscaleRenderer), PostProcessEvent.AfterStack, "Custom/Grayscale")]
public sealed class Grayscale : PostProcessEffectSettings
{
    [Range(0f, 1f), Tooltip("Grayscale effect intensity.")]
    public FloatParameter blend = new FloatParameter { value = 0.5f };
}

public sealed class GrayscaleRenderer : PostProcessEffectRenderer<Grayscale>
{
    public override void Render(PostProcessRenderContext context)
    {
        var sheet = context.propertySheets.Get(Shader.Find("Hidden/Custom/Grayscale"));
        sheet.properties.SetFloat("_Blend", settings.blend);
        context.command.BlitFullscreenTriangle(context.source, context.destination, sheet, 0);
    }
}
Run Code Online (Sandbox Code Playgroud)

灰度着色器

Shader "Hidden/Custom/Grayscale"
{
    HLSLINCLUDE

        #include "Packages/com.unity.postprocessing/PostProcessing/Shaders/StdLib.hlsl"

        TEXTURE2D_SAMPLER2D(_MainTex, sampler_MainTex); …
Run Code Online (Sandbox Code Playgroud)

c# shader effect unity-game-engine post-processing

6
推荐指数
1
解决办法
4265
查看次数

标签 统计

c# ×1

effect ×1

post-processing ×1

shader ×1

unity-game-engine ×1