Skip to content

InspectMe Supported Method and Type Specifications

Available from

Overview

InspectMe provides robust capabilities for inspecting a wide range of methods and types within Unity, enhancing debugging and development processes. This guide details the types of methods and parameters that InspectMe supports, as well as the limitations of the current implementation.

Method Types

Supported Methods

InspectMe is designed to work with a broad spectrum of methods, enhancing its utility across various coding scenarios:

  • Static Methods: Inspect static methods directly from the class.
  • Access Modifiers: Supports methods with private, protected, public, and internal access levels.
  • Method Overloads: Effectively handles methods with multiple overloads, providing comprehensive insights.

Unsupported Methods

Certain method types are currently not supported, typically due to their complex or unique behaviors in runtime environments:

  • Constructors: Due to their specific role in object instantiation.
  • Generic Method Definitions: Generic methods are supported only when instantiated with specific types.
  • Async Methods: Asynchronous methods that return Task or Task<T> are not supported due to their execution nature.

Return Types

InspectMe can inspect any return type that is supported by the tree view, which includes:

  • Generic Types: Fully supports generic types, allowing detailed inspections.
  • Value Types and Reference Types: Handles both primitive and complex data structures.
  • Arrays and Generic Collections: Such as List<T>, Dictionary<TKey, TValue>, etc., providing a detailed view of their contents.

Parameter Types

Supported Parameters

InspectMe is capable of handling a variety of parameter types to ensure flexibility in inspecting and invoking methods within Unity:

  • Unity Specific Types: Support includes Unity-specific types like AnimationCurve and Gradient, as well as any subclass of UnityEngine.Object and Component.
  • Primitive and Struct Types: Covers all .NET primitive types along with Unity-specific structs such as Vector2, Vector3, Quaternion, Color, and more.
  • Complex Structured Data: Efficiently handles enums and complex structured data like Matrix4x4, Rect, Bounds, and other similar types that provide detailed views into the state of Unity objects.

Unsupported Parameters

There are certain types of parameters that InspectMe currently does not support, primarily due to their complexity or the nature of their operations within Unity's runtime:

  • Generic Types: Parameters that are undeclared generic types are not supported because of their variability in type declaration at runtime.
  • Complex Reference Types: Reference types that require extensive memory management and could potentially alter the state of the application unpredictably.
  • Asynchronous Types: Types like System.Threading.Tasks.Task which are used for asynchronous operations are not supported due to their non-blocking and continuation-based behaviors.
  • Out and Reference Modifiers: Parameters marked with out, ref, or pointer types are excluded to avoid unintended side effects during method invocation, preserving the original state and behavior of the system.

We are committed to continuously enhancing the capabilities of InspectMe. Our development team is actively working to expand the types of methods and parameters supported by InspectMe, aiming to increase its utility and adaptability in diverse development scenarios within Unity. Stay tuned for future updates as we extend our support to more complex types and functionalities.