Add Unity Pipeline package support

This commit is contained in:
ud18010
2026-07-31 17:34:04 +08:00
parent d1a526094e
commit 786b7ffff9
590 changed files with 51995 additions and 2 deletions
@@ -0,0 +1,63 @@
using System;
using System.IO;
using Unity.Pipeline.Commands;
using Unity.Pipeline.Models;
using UnityEditor;
using UnityEngine;
namespace Unity.Pipeline.Editor.Commands
{
/// <summary>
/// Command to get detailed Editor status information.
/// Returns rich Editor state including compilation, play mode, and project details.
/// Accessible via "unity request editor_status" and "/api/editor_status" endpoint.
/// </summary>
public static class EditorStatusCommand
{
[CliCommand("editor_status", "Get detailed Unity Editor status and state information")]
public static StatusResponse GetEditorStatus()
{
return new StatusResponse
{
Status = GetOverallStatus(),
Compiling = EditorApplication.isCompiling,
DomainReloadInProgress = EditorApplication.isUpdating,
PlayMode = GetPlayModeStatus(),
LastHeartbeat = DateTime.UtcNow,
ProjectPath = Path.GetDirectoryName(Application.dataPath),
UnityVersion = Application.unityVersion
};
}
/// <summary>
/// Get overall Editor status based on current state.
/// </summary>
private static string GetOverallStatus()
{
if (EditorApplication.isCompiling)
return "compiling";
if (EditorApplication.isUpdating)
return "reloading";
if (EditorApplication.isPlaying || EditorApplication.isPaused)
return "playing";
return "ready";
}
/// <summary>
/// Get current play mode status.
/// </summary>
private static string GetPlayModeStatus()
{
if (EditorApplication.isPaused)
return "paused";
if (EditorApplication.isPlaying)
return "playing";
return "stopped";
}
}
}