Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


ReflectedFunction

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

Definition

public struct ReflectedFunction

Remarks

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

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

BodyTextThe function's unprocessed body text.
EnclosingNamespaceThe namespace in which the function was defined.
FullyQualifiedNameThe function's fully qualified name, taking into account the enclosing namespace.
HintsThe function's metadata, extracted from any structured comments decorating the function.
NameThe function's name.
ParametersThe function's parameters.
ReturnTypeNameThe name of the function's return type.

Methods

Method

Description

GetNormalizedBodyTextGets the function's body text in an easy-to-read format.
GetSignatureGets the function's signature.
ToStringGets the function's signature.