Add PackageInstaller for automatic Python server installation on first package load

main
David Sarno 2025-08-07 19:06:12 -07:00
parent 5c4ea29fc7
commit 673bc1bd49
1 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,43 @@
using UnityEditor;
using UnityEngine;
namespace UnityMcpBridge.Editor.Helpers
{
/// <summary>
/// Handles automatic installation of the Python server when the package is first installed.
/// </summary>
[InitializeOnLoad]
public static class PackageInstaller
{
private const string InstallationFlagKey = "UnityMCP.ServerInstalled";
static PackageInstaller()
{
// Check if this is the first time the package is loaded
if (!EditorPrefs.GetBool(InstallationFlagKey, false))
{
// Schedule the installation for after Unity is fully loaded
EditorApplication.delayCall += InstallServerOnFirstLoad;
}
}
private static void InstallServerOnFirstLoad()
{
try
{
Debug.Log("Unity MCP: Installing Python server...");
ServerInstaller.EnsureServerInstalled();
// Mark as installed
EditorPrefs.SetBool(InstallationFlagKey, true);
Debug.Log("Unity MCP: Python server installation completed successfully.");
}
catch (System.Exception ex)
{
Debug.LogError($"Unity MCP: Failed to install Python server: {ex.Message}");
Debug.LogWarning("Unity MCP: You may need to manually install the Python server. Check the Unity MCP Editor Window for instructions.");
}
}
}
}