56 lines
2.2 KiB
C#
56 lines
2.2 KiB
C#
using System.ComponentModel;
|
|
|
|
namespace io.github.hatayama.uLoopMCP
|
|
{
|
|
/// <summary>
|
|
/// Window name matching modes for FindWindowsByName
|
|
/// </summary>
|
|
public enum WindowMatchMode
|
|
{
|
|
/// <summary>
|
|
/// Exact match (case-insensitive)
|
|
/// </summary>
|
|
exact = 0,
|
|
|
|
/// <summary>
|
|
/// Prefix match (case-insensitive)
|
|
/// </summary>
|
|
prefix = 1,
|
|
|
|
/// <summary>
|
|
/// Contains match (case-insensitive)
|
|
/// </summary>
|
|
contains = 2
|
|
}
|
|
|
|
public enum CaptureMode
|
|
{
|
|
window = 0,
|
|
rendering = 1
|
|
}
|
|
|
|
public class ScreenshotSchema : BaseToolSchema
|
|
{
|
|
[Description("Window name to capture (e.g., 'Game', 'Scene', 'Console', 'Inspector', 'Project', 'Hierarchy', or any EditorWindow title). Ignored when CaptureMode is rendering.")]
|
|
public string WindowName { get; set; } = "Game";
|
|
|
|
[Description("Resolution scale multiplier (0.1 to 1.0, where 1.0 is original size)")]
|
|
public float ResolutionScale { get; set; } = 1.0f;
|
|
|
|
[Description("Window name matching mode: exact(0)=exact match, prefix(1)=starts with, contains(2)=partial match. All modes are case-insensitive. Ignored when CaptureMode is rendering.")]
|
|
public WindowMatchMode MatchMode { get; set; } = WindowMatchMode.exact;
|
|
|
|
[Description("Output directory path for saving screenshots. When empty, uses default path (.uloop/outputs/Screenshots/). Accepts absolute paths.")]
|
|
public string OutputDirectory { get; set; } = "";
|
|
|
|
[Description("Capture mode: window(0)=capture EditorWindow including toolbar, rendering(1)=capture game rendering only (PlayMode required, coordinates match simulate-mouse)")]
|
|
public CaptureMode CaptureMode { get; set; } = CaptureMode.window;
|
|
|
|
[Description("Annotate interactive UI elements with names and simulate-mouse coordinates on the screenshot. Only works with CaptureMode=rendering in PlayMode.")]
|
|
public bool AnnotateElements { get; set; } = false;
|
|
|
|
[Description("Return only annotated element JSON without capturing a screenshot image. Requires AnnotateElements=true and CaptureMode=rendering in PlayMode.")]
|
|
public bool ElementsOnly { get; set; } = false;
|
|
}
|
|
}
|