Identifies a specific part of a source code file.
When used with a LogMessage, represents the location in the source code the message refers to.
Additional resources: LogMessage.Location.
using UnityEditor; using UnityEditor.ShaderApiReflection; using UnityEngine; // This example adds a menu item which re-logs any reflection errors reported by shader includes // selected in the project view. public class ShaderIncludeReflectionErrorPrinter { [MenuItem("Examples/ShaderIncludeReflectionErrorPrinter")] static void PrintErrors() { // Visit each selected object foreach (Object selectedObject in Selection.objects) { // Check if the object is a ShaderInclude if (selectedObject is ShaderInclude includeObject) { // Re-log each reflection message foreach (LogMessage message in includeObject.Reflection.LogMessages) { string formattedMessage = $"{message.ErrorCode} {message.MessageSeverity} at {message.Location.FilePath}" + $" (line {message.Location.Line}): {message.Text}"; if (message.MessageSeverity == LogMessage.Severity.Error) Debug.LogError(formattedMessage); else Debug.LogWarning(formattedMessage); } } } } }