Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


ReflectedParameter

Information about a shader function parameter.
Read time 2 minutesLast updated 8 days ago

Definition

public struct ReflectedParameter

Remarks

This struct represents a function parameter as reflected from shader source code. On top of information extracted directly from the syntax, such as ReflectedParameter.DirectionFlags, ReflectedParameter.TypeName, and ReflectedParameter.Name, it also contains ReflectedParameter.Hints: metadata extracted from structured comments decorating the function.
Additional Resources: ReflectedFunction.Parameters.

Examples

using UnityEditor;using UnityEditor.ShaderApiReflection;using UnityEngine;// This example adds a menu item which prints information from reflected functions in any shader include// assets selected in the project view.public class ReflectedFunctionPrinter{ [MenuItem("Examples/ReflectedFunctionPrinter")] static void PrintReflectedFunctions() { // Visit each selected object foreach (Object selectedObject in Selection.objects) { // Check if the object is a ShaderInclude if (selectedObject is ShaderInclude includeObject) { Debug.Log("Found shader include at " + AssetDatabase.GetAssetPath(includeObject)); // Visit each exposed function in the include foreach (ReflectedFunction func in includeObject.Reflection.ReflectedFunctions) PrintFunction(func); } } } static void PrintFunction(ReflectedFunction func) { // Print the function's signature Debug.Log($"Found function with signature: {func.GetSignature()}"); // Print the function's summary, if it exists if (func.Hints.TryGetValue("summary", out string funcSummary)) Debug.Log($"{func.Name}'s doc comment: {funcSummary}"); // Print the function's body text Debug.Log($"{func.Name}'s body:\n{func.GetNormalizedBodyText()}"); // Visit each parameter foreach (ReflectedParameter param in func.Parameters) { // Print the parameter Debug.Log($"{func.Name} has parameter: {param.ToString()}"); // Print the parameter's summary if (param.Hints.TryGetValue("summary", out string paramSummary)) Debug.Log($"{param.Name}'s doc comment: {paramSummary}"); } }}

Properties

Property

Description

DirectionFlagsThe parameter's read- and writability.
HintsThe function parameter's metadata, extracted from any structured comments decorating the function.
NameThe parameter's name.
TypeNameThe name of the parameter's type.

Methods

Method

Description

ToStringGets the parameter's declaration, as would be written in the shader function's declaration.

Enums

Enum

Description

ReflectedParameter.DirectionThe read- and writability flags for a function parameter.