InspectMe Supported Method and Type Specifications
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
, andinternal
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
orTask<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
andGradient
, as well as any subclass ofUnityEngine.Object
andComponent
. - 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.