🔧

【Unity VFXGraph】Extra space between '\' and newlineの警告を消す方法

2024/05/18に公開

◆概要

本記事ではUnity VFXGraphで表示されるOutputUpdate': Extra space between '\' and newline.という警告を消す方法を解説します。

◆環境

筆者はUnity2022.3.2f1でこの警告に遭遇しています。
Unity Issue Trackerには2022 LTS ~ 2023.3.4f1でも発生が報告されていますが、2022.3.5f1、2023.1.3f1、2023.2.0a15では解決済みとされています。

◆解決方法

この警告はVFXCommon.hlslの202~204行目において/と改行との間に余分な空白が認められると述べています。

ですので警告を消すためにVFXCommon.hlslの該当部を修正します。

VFXCommonは複数個存在しますが、今回修正するのはRenderPipelineの子にある物になります。

Packages/com.unity.render-pipelines.universal/Runtime/VFXGraph/Shaders/VFXCommon.hlsl

VFXCommonを開いたら200行目近辺のコメントを削除し#elseの上の{を削除します。
この際コメント部分は\の手前の空白文字までしっかりと削除してください。

以下のコードをコピペして該当部に上書きでも大丈夫です。

VFXCommon.hlsl
#if defined(_GBUFFER_NORMALS_OCT)
#define VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer) \
{ \
    float2 octNormalWS = PackNormalOctQuadEncode(normalWS); \
    float2 remappedOctNormalWS = saturate(octNormalWS * 0.5 + 0.5); \
    half3 packedNormalWS = PackFloat2To888(remappedOctNormalWS); \
	outNormalBuffer = float4(packedNormalWS, 0.0); \

#else
#define VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer) \
{ \
    outNormalBuffer = float4(normalWS, 0.0); \
}
#endif

以上が警告を消す方法でした。

ちなみに放置してもパフォーマンスには影響しないようなので面倒な方は放置でも問題ないと思います。

◆参考

https://forum.unity.com/threads/compile-error-in-shader-in-unity-2020-2-3-but-not-in-unity-2019-2-17.1057709/

Discussion