← Files UnityARCHIVED FILE

skills/shader-graph-create-custom-node/resources/all_hints.hlsl

5.13 KB · Oct 2, 2026 · 00:33 UTC

↓ Download file

#include "ShaderApiReflectionSupport.hlsl"

namespace Namespace
{
    struct CustomStruct
    {
        float Value;
    };

/// <funchints>
///     <sg:ProviderKey>AllHintsUniqueStableID</sg:ProviderKey>
///     <sg:DisplayName>All Known Hints</sg:DisplayName>
///     <sg:ReturnDisplayName>Final Result</sg:ReturnDisplayName>
///     <sg:SearchCategory>Hints/All</sg:SearchCategory>
///     <sg:SearchTerms>Features, Reflected, Every, Hint</sg:SearchTerms>
///     <sg:SearchName>All Hints Search Name</sg:SearchName>
/// </funchints>
/// <paramhints name="a">
///     <sg:DisplayName>Custom Struct Value</sg:DisplayName>
///     <sg:Default>0.5</sg:Default>
///     <sg:External>Namespace</sg:External>
/// </paramhints>
/// <paramhints name="c3">
///     <sg:DisplayName>Color 3</sg:DisplayName>
///     <sg:Color />
///     <sg:Default>1,1,0</sg:Default>
/// </paramhints>
/// <paramhints name="c4">
///     <sg:DisplayName>Color 4</sg:DisplayName>
///     <sg:Color />
///     <sg:Default>1,1,0,1</sg:Default>
/// </paramhints>
/// <paramhints name="sc3">
///     <sg:DisplayName>Static Color 3</sg:DisplayName>
///     <sg:Color />
///     <sg:Static />
///     <sg:Default>1,1,0</sg:Default>
/// </paramhints>
/// <paramhints name="sc4">
///     <sg:DisplayName>Static Color 4</sg:DisplayName>
///     <sg:Color />
///     <sg:Static />
///     <sg:Default>1,1,0,1</sg:Default>
/// </paramhints>
/// <paramhints name="d">
///     <sg:DisplayName>Dropdown</sg:DisplayName>
///     <sg:Dropdown>OptionA, OptionB, OptionC</sg:Dropdown>
///     <sg:Default>1</sg:Default>
/// </paramhints>
/// <paramhints name="sd">
///     <sg:DisplayName>Dropdown</sg:DisplayName>
///     <sg:Dropdown>OptionA, OptionB, OptionC</sg:Dropdown>
///     <sg:Static />
///     <sg:Default>2</sg:Default>
/// </paramhints>
/// <paramhints name="r">
///     <sg:DisplayName>Range</sg:DisplayName>
///     <sg:Range>0, 1</sg:Range>
///     <sg:Default>0.75</sg:Default>
/// </paramhints>
/// <paramhints name="sr">
///     <sg:DisplayName>Range</sg:DisplayName>
///     <sg:Static />
///     <sg:Range>0, 1</sg:Range>
///     <sg:Default>0.25</sg:Default>
/// </paramhints>
/// <paramhints name="sb">
///     <sg:DisplayName>Toggle</sg:DisplayName>
///     <sg:Static />
///     <sg:Default>1</sg:Default>
/// </paramhints>
/// <paramhints name="si">
///     <sg:DisplayName>Integer</sg:DisplayName>
///     <sg:Static />
///     <sg:Default>5</sg:Default>
/// </paramhints>
UNITY_EXPORT_REFLECTION float3 AllHints(
    inout CustomStruct a,
    float3 c3,
    inout float4 c4,
    float3 sc3,
    float4 sc4,
    inout uint d,
    uint sd,
    float r,
    float sr,
    bool sb,
    int si
)
{
    return float3(a.Value, sr, sc4.r);
}

} // Namespace

/// <funchints>
///     <sg:ProviderKey>GoodReferables</sg:ProviderKey>
/// </funchints>
/// <paramhints name="UV">
///     <UV/>
///     <Default>UV2</Default>
/// </paramhints>
/// <paramhints name="alsoUV">
///     <sg:Referable>UV</sg:Referable>
///     <Default>UV1</Default>
/// </paramhints>
/// <paramhints name="Position">
///     <Position/>
///     <Default>AbsoluteWorld</Default>
/// </paramhints>
/// <paramhints name="Normal">
///     <Normal/>
///     <Default>World</Default>
/// </paramhints>
/// <paramhints name="Tangent">
///     <Tangent/>
///     <Default>Object</Default>
/// </paramhints>
/// <paramhints name="Bitangent">
///     <Bitangent/>
///     <Default>Tangent</Default>
/// </paramhints>
/// <paramhints name="ViewDirection">
///     <ViewDirection/>
///     <Default>Screen</Default>
/// </paramhints>
/// <paramhints name="VertColor">
///     <VertexColor/>
/// </paramhints>
/// <paramhints name="ScreenPosition">
///     <ScreenPosition/>
///     <Default>Pixel</Default>
/// </paramhints>
/// <paramhints name="defaultValue">
///     <Default>1,0,0</Default>
/// </paramhints>
UNITY_EXPORT_REFLECTION float3 ReferableGood(float2 UV,
                                            float2 alsoUV,
                                            float3 Position,
                                            float3 Normal,
                                            float3 Tangent,
                                            float3 Bitangent,
                                            float3 ViewDirection,
                                            float4 VertColor,
                                            float4 ScreenPosition,
                                            float3 defaultValue)
{
    return float3(1,1,0);
}

/// <funchints>
///     <sg:ProviderKey>PrecisionTest</sg:ProviderKey>
///     <Precision/>
/// </funchints>
/// <paramhints name="a">
///     <Dynamic/>
/// </paramhints>
/// <paramhints name="b">
///     <Dynamic/>
/// </paramhints>
/// <paramhints name="c">
///     <Dynamic/>
/// </paramhints>
UNITY_EXPORT_REFLECTION float2 PrecisionTest(float a, half b, out float c)
{
    c = a + b;
    return (a,b);
}

/// <funchints>
///     <sg:ProviderKey>LinkageExample</sg:ProviderKey>
/// </funchints>
/// <paramhints name="test">
///     <Linkage>other</Linkage>
/// </paramhints>
UNITY_EXPORT_REFLECTION float3 LinkageExample(bool test, float other)
{
    if (test)
        return float3(other, 0, 0);
    else
        return float3(0, other, 0);
}

SHA-256: 31952ec9470c39df41de3d47450922017a3290e3facfa5f0495e4845a4ff8a5a