Information about a shader function.
This struct represents a function as reflected from shader source code. On top of information extracted directly from the syntax, such as ReturnTypeName, Parameters, and Name, it also contains Hints: metadata extracted from structured comments decorating the function.
Additional resources: ShaderIncludeReflection.ReflectedFunctions.
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}"); } } }
| Property | Description |
|---|---|
| BodyText | The function's unprocessed body text. |
| EnclosingNamespace | The namespace in which the function was defined. |
| FullyQualifiedName | The function's fully qualified name, taking into account the enclosing namespace. |
| Hints | The function's metadata, extracted from any structured comments decorating the function. |
| Name | The function's name. |
| Parameters | The function's parameters. |
| ReturnTypeName | The name of the function's return type. |
| Method | Description |
|---|---|
| GetNormalizedBodyText | Gets the function's body text in an easy-to-read format. |
| GetSignature | Gets the function's signature. |
| ToString | Gets the function's signature. |