c56337ec03
Since #1122 declared the Physics 2D, Screen Capture, Image Conversion, etc. built-in modules as required deps in package.json, Unity Package Manager now keeps them enabled while MCP for Unity is installed. Two defensive layers that protected against the now-impossible "module disabled" case become dead code, plus one sub-floor preprocessor gate that was always-true on our declared `unity: 2021.3` floor. Tier 1A — UnityPhysicsCompat.cs - Revert `Type.GetType("UnityEngine.Physics2D, UnityEngine.Physics2DModule")` to `typeof(Physics2D)`. The property-level reflection (for `autoSyncTransforms` deprecation in Unity 6.x) stays — that's a different concern. Tier 1B — TrailControl.cs - Strip `#if UNITY_2021_1_OR_NEWER` gate. Package floor is 2021.3 per package.json, so the `#else` branch ("AddPosition requires Unity 2021.1+") is unreachable. Tier 2 — ScreenshotUtility.cs + callers - Remove `IsScreenCaptureModuleAvailable` property, `ScreenCaptureModuleNotAvailableError` constant, `InvokeCaptureScreenshotAsTexture` helper, and the `s_captureScreenshotMethod` / `s_captureScreenshotAsTextureMethod` / `s_screenCaptureModuleAvailable` reflection caches. - Replace reflective `MethodInfo.Invoke` calls with direct `ScreenCapture.X` calls in `CaptureToProjectFolder`, `CaptureComposited`, and the `ScreenshotCapturer` MonoBehaviour. - Camera-based fallback path (`FindAvailableCamera` + `CaptureFromCameraToProjectFolder`) is preserved — it still handles transient null returns from `ScreenCapture` inside `CaptureComposited`. - Drop pre-flight `if (!IsScreenCaptureModuleAvailable)` gates in `ManageUI.cs` (UI render) and `ManageScene.cs` (screenshot path). - `ProjectInfo` resource: `screenCapture` field is now an invariant `true` (preserves API shape for `mcpforunity://project/info` consumers). Net: 144 lines removed, 15 added. No new tests — the changes are pure removal of code paths that cannot fire with the current deps declared. Related: #1160, #1122.
33 lines
1.1 KiB
C#
33 lines
1.1 KiB
C#
using Newtonsoft.Json.Linq;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using MCPForUnity.Editor.Helpers;
|
|
|
|
namespace MCPForUnity.Editor.Tools.Vfx
|
|
{
|
|
internal static class TrailControl
|
|
{
|
|
public static object Clear(JObject @params)
|
|
{
|
|
TrailRenderer tr = TrailRead.FindTrailRenderer(@params);
|
|
if (tr == null) return new { success = false, message = TrailRead.FindTrailRendererError(@params) };
|
|
|
|
Undo.RecordObject(tr, "Clear Trail");
|
|
tr.Clear();
|
|
return new { success = true, message = "Trail cleared" };
|
|
}
|
|
|
|
public static object Emit(JObject @params)
|
|
{
|
|
TrailRenderer tr = TrailRead.FindTrailRenderer(@params);
|
|
if (tr == null) return new { success = false, message = TrailRead.FindTrailRendererError(@params) };
|
|
|
|
RendererHelpers.EnsureMaterial(tr);
|
|
|
|
Vector3 pos = ManageVfxCommon.ParseVector3(@params["position"]);
|
|
tr.AddPosition(pos);
|
|
return new { success = true, message = $"Emitted at ({pos.x}, {pos.y}, {pos.z})" };
|
|
}
|
|
}
|
|
}
|