Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


ShaderIncludeReflection

The container for reflection data extracted from a shader include.
Read time 4 minutesLast updated 10 days ago

Definition

public sealed class ShaderIncludeReflection : Object

Remarks

This class exposes information on any functions declared in a shader include which were exposed using
UNITY_EXPORT_REFLECTION
.
Additional Resources: ShaderInclude.Reflection.

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

LogMessagesThe errors or warnings generated while reflecting the shader include.
ReflectedFunctionsThe shader include's exposed functions.

Inheritance

Inherited Members

Operators

Operator

Description

operator ==Compares two object references to see if they refer to the same object.
boolDetermines whether the object exists.
operator !=Compares if two objects refer to a different object.