GetNormalizedBodyText(uint)
Gets the function's body text in an easy-to-read format.
Read time 1 minuteLast updated 10 days ago
Definition
- Type: Method
- Namespace: UnityEditor.ShaderApiReflection
- Assembly: UnityEditor.CoreModule
public string GetNormalizedBodyText(uint tabWidth = 4)
Parameters
The number of spaces to use when converting any tab characters within the body text.
Returns
Type | Description |
|---|---|
| string | A readable version of the function's body text. |
Remarks
This method performs the following operations on the body text:
- Tab characters are converted to spaces based on .
tabWidth - The text is left-aligned such that the least-indented line within the raw body text has zero indentation.
Additional Resources: ReflectedFunction.BodyText.
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}"); } }}