Skip to content

Comments

feat: add component_properties to manage_prefabs modify_contents (#793)#802

Merged
dsarno merged 3 commits intoCoplayDev:betafrom
dsarno:feature/793-prefab-component-properties
Feb 21, 2026
Merged

feat: add component_properties to manage_prefabs modify_contents (#793)#802
dsarno merged 3 commits intoCoplayDev:betafrom
dsarno:feature/793-prefab-component-properties

Conversation

@dsarno
Copy link
Collaborator

@dsarno dsarno commented Feb 21, 2026

Summary

Closes #793. Adds component_properties parameter to manage_prefabs modify_contents, enabling users to set serialized fields on existing components within prefab assets.

  • C# (ManagePrefabs.cs): Wires componentProperties into the prefab editing flow using existing ComponentOps.SetProperty() and ComponentResolver.TryResolve() — no new abstractions needed
  • Python (manage_prefabs.py): Adds component_properties parameter with type annotation and forwards it to Unity as componentProperties
  • Tests: 6 new C# unit tests covering simple properties, multi-component, child targeting, error cases, and combining with other modifications; 4 new Python parameter validation tests

Usage

manage_prefabs(
    action="modify_contents",
    prefab_path="Assets/Prefabs/Enemy.prefab",
    component_properties={
        "Rigidbody": {"mass": 5.0, "useGravity": False},
        "MyScript": {"health": 100}
    }
)

Supports object references via {"guid": "..."}, {"path": "Assets/..."}, or {"instanceID": 123}.

Test plan

  • All 711 Python tests pass
  • 6 new C# unit tests pass (simple props, multi-component, child target, missing component error, invalid type error, combined modifications)
  • 4 new Python parameter validation tests pass
  • E2E smoke tested against live Unity instance (10+ scenarios)

Generated with Claude Code

Summary by Sourcery

Add support for setting serialized properties on existing components when modifying prefab contents via the manage_prefabs tool.

New Features:

  • Allow manage_prefabs modify_contents to set properties on existing Unity components through a new component_properties parameter.
  • Expose the component_properties parameter in the Python manage_prefabs tool interface and propagate it to the Unity backend.

Tests:

  • Add C# edit-mode tests covering component_properties behavior, including simple updates, child targets, error cases, and combination with other modifications.
  • Add Python tests validating the presence, optionality, and documentation of the component_properties parameter on manage_prefabs.

Chores:

  • Adjust Unity test project package manifest dependency path for the com.coplaydev.unity-mcp package.

Summary by CodeRabbit

New Features

  • Added ability to set properties on existing components in prefab modifications via a new component_properties parameter. Supports mapping component types to property dictionaries and object references using guid, path, or instance ID.

…v#793)

Add component_properties parameter to manage_prefabs modify_contents,
enabling AI agents to set serialized fields on prefab components without
opening the prefab editor. Reuses existing ComponentOps.SetProperty for
reflection, SerializedProperty, and object reference resolution (by
GUID, path, or instanceID).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Feb 21, 2026

Reviewer's Guide

Adds a new component_properties parameter to the manage_prefabs modify_contents action, wiring it through the Python tool layer into the Unity C# prefab modification pipeline to set serialized properties on existing components, with accompanying tests for behavior and validation.

Sequence diagram for manage_prefabs modify_contents with component_properties

sequenceDiagram
    actor Developer
    participant PythonManagePrefabs as Python_manage_prefabs
    participant UnityBridge as Unity_Tool_Bridge
    participant CSharpManagePrefabs as CSharp_ManagePrefabs
    participant ComponentResolver
    participant GameObject
    participant Component
    participant ComponentOps
    participant ErrorResponse

    Developer->>PythonManagePrefabs: manage_prefabs(action=modify_contents, component_properties)
    PythonManagePrefabs->>PythonManagePrefabs: Validate parameters
    PythonManagePrefabs->>PythonManagePrefabs: params["componentProperties"] = component_properties
    PythonManagePrefabs->>UnityBridge: Send request with componentProperties

    UnityBridge->>CSharpManagePrefabs: ApplyModificationsToPrefabObject(@params, targetGo)
    CSharpManagePrefabs->>CSharpManagePrefabs: Read @params["componentProperties"] or @params["component_properties"]
    alt componentProperties present and nonempty
        loop For each typeName in componentProperties
            CSharpManagePrefabs->>ComponentResolver: TryResolve(typeName)
            alt Resolution fails
                ComponentResolver-->>CSharpManagePrefabs: resolveError
                CSharpManagePrefabs->>ErrorResponse: new ErrorResponse("Component type not found")
                CSharpManagePrefabs-->>UnityBridge: (modified=false, error)
                UnityBridge-->>PythonManagePrefabs: ErrorResponse
                PythonManagePrefabs-->>Developer: Raise error
            else Resolution succeeds
                ComponentResolver-->>CSharpManagePrefabs: componentType
                CSharpManagePrefabs->>GameObject: GetComponent(componentType)
                alt Component missing
                    GameObject-->>CSharpManagePrefabs: null
                    CSharpManagePrefabs->>ErrorResponse: new ErrorResponse("Component not found on target")
                    CSharpManagePrefabs-->>UnityBridge: (modified=false, error)
                    UnityBridge-->>PythonManagePrefabs: ErrorResponse
                    PythonManagePrefabs-->>Developer: Raise error
                else Component found
                    GameObject-->>CSharpManagePrefabs: component
                    loop For each property in componentProperties[typeName]
                        CSharpManagePrefabs->>ComponentOps: SetProperty(component, propertyName, value)
                        alt SetProperty succeeds
                            ComponentOps-->>CSharpManagePrefabs: setError=null
                            CSharpManagePrefabs->>CSharpManagePrefabs: modified = true
                        else SetProperty fails
                            ComponentOps-->>CSharpManagePrefabs: setError
                            CSharpManagePrefabs->>CSharpManagePrefabs: errors.Add(typeName.propertyName)
                        end
                    end
                end
            end
        end
        alt Any errors collected
            CSharpManagePrefabs->>ErrorResponse: new ErrorResponse("Failed to set some component properties")
            CSharpManagePrefabs-->>UnityBridge: (modified=false, error)
        else No errors
            CSharpManagePrefabs-->>UnityBridge: (modified=true, error=null)
        end
    else No componentProperties
        CSharpManagePrefabs-->>UnityBridge: (modified, error) from other modifications
    end

    UnityBridge-->>PythonManagePrefabs: Result
    PythonManagePrefabs-->>Developer: Return modify_contents result
Loading

Updated class diagram for Unity prefab modification with component_properties

classDiagram
    class ManagePrefabs {
        <<static>>
        +ApplyModificationsToPrefabObject(JObject params, GameObject targetGo) (bool modified, ErrorResponse error)
    }

    class ComponentResolver {
        +TryResolve(string typeName, out Type componentType, out string resolveError) bool
    }

    class ComponentOps {
        +SetProperty(Component component, string propertyName, JToken value, out string setError) bool
    }

    class ErrorResponse {
        +string message
        +ErrorResponse(string message)
    }

    class GameObject {
        +string name
        +GetComponent(Type componentType) Component
    }

    class Component {
    }

    ManagePrefabs ..> ComponentResolver : uses
    ManagePrefabs ..> ComponentOps : uses
    ManagePrefabs ..> ErrorResponse : creates
    ManagePrefabs ..> GameObject : modifies
    GameObject o--> Component : contains
    ManagePrefabs ..> Component : gets and updates
Loading

File-Level Changes

Change Details Files
Add support in Unity C# prefab modification pipeline to set properties on existing components during modify_contents.
  • Extend ApplyModificationsToPrefabObject to read componentProperties/component_properties from parameters as a JObject.
  • Resolve component types by name using ComponentResolver.TryResolve and fetch existing components from the target GameObject.
  • Iterate over requested properties and set them via ComponentOps.SetProperty, tracking whether any modifications were applied.
  • Aggregate property-set errors and fail the operation with a descriptive ErrorResponse if any property updates fail or if components/types are missing.
MCPForUnity/Editor/Tools/Prefabs/ManagePrefabs.cs
Expose component_properties parameter in the Python manage_prefabs tool and pass it through to Unity.
  • Update manage_prefabs tool description to document component_properties usage and supported object reference formats.
  • Add optional component_properties parameter with appropriate typing and annotations to manage_prefabs.
  • When action is modify_contents, forward component_properties to the Unity side as componentProperties in the params payload.
Server/src/services/tools/manage_prefabs.py
Add C# tests validating componentProperties behavior in prefab modification, plus a helper for creating test prefabs with components.
  • Add test cases for setting simple properties, multiple components, child-targeted components, missing components, invalid component types, and combining component properties with other modifications.
  • Implement CreatePrefabWithComponents helper to generate prefabs that contain specific component types for tests.
TestProjects/UnityMCPTests/Assets/Tests/EditMode/Tools/ManagePrefabsCrudTests.cs
Add Python tests to validate the presence and registration of the component_properties parameter on manage_prefabs.
  • Verify manage_prefabs exposes an optional component_properties parameter via introspection.
  • Check that the registered manage_prefabs tool description mentions component_properties.
  • Assert that REQUIRED_PARAMS declares modify_contents as an action requiring prefab_path.
Server/tests/test_manage_prefabs.py
Update Unity test project manifest dependency path for com.coplaydev.unity-mcp (likely local/dev-only change).
  • Point com.coplaydev.unity-mcp dependency to a local absolute file path instead of the previous relative path.
TestProjects/UnityMCPTests/Packages/manifest.json

Assessment against linked issues

Issue Objective Addressed Explanation
#793 Add support in the Unity MCP backend to modify serialized fields on existing components in prefab assets (including on child GameObjects within the prefab).
#793 Expose this prefab-serialized-field modification capability through the manage_prefabs tool API (Python) with appropriate parameters and description so agents can use it.

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 21, 2026

No actionable comments were generated in the recent review. 🎉


📝 Walkthrough

Walkthrough

This PR introduces support for modifying serialized fields on prefab components by adding a new component_properties parameter to the manage_prefabs workflow. The feature enables setting properties on existing components in prefab assets through the modify_contents action, with error handling and validation for missing or invalid component types.

Changes

Cohort / File(s) Summary
Editor Implementation
MCPForUnity/Editor/Tools/Prefabs/ManagePrefabs.cs
Adds processing logic to apply componentProperties during ModifyContents: resolves component types, verifies components exist on target, applies each property via ComponentOps.SetProperty, and accumulates per-property errors with consolidated error reporting.
Server Tool Definition
Server/src/services/tools/manage_prefabs.py
Introduces optional component_properties parameter mapping component type names to property dictionaries, with extended documentation for modify_contents including object reference examples via guid/path/instanceID.
Server Testing
Server/tests/test_manage_prefabs.py
Validates component_properties parameter presence, default value (None), tool description mentions, and required parameters for modify_contents action.
Editor Testing
TestProjects/UnityMCPTests/Assets/Tests/EditMode/Tools/ManagePrefabsCrudTests.cs
Comprehensive test suite covering single and multi-component property setting, child target application, combined modifications, error handling for missing/invalid components, and new utility helper CreatePrefabWithComponents.

Sequence Diagram

sequenceDiagram
    participant Agent as Client/Agent
    participant ServerTool as Server Tool<br/>(manage_prefabs)
    participant EditorHandler as Editor Handler<br/>(ModifyContents)
    participant ComponentOps as ComponentOps
    participant UnityAPI as Unity API

    Agent->>ServerTool: modify_contents with component_properties
    ServerTool->>EditorHandler: dispatch with componentProperties param
    EditorHandler->>EditorHandler: iterate component_properties dict
    EditorHandler->>EditorHandler: resolve component type by name
    EditorHandler->>EditorHandler: verify component exists on target
    EditorHandler->>ComponentOps: SetProperty(component, prop_name, value)
    ComponentOps->>UnityAPI: apply property value
    UnityAPI-->>ComponentOps: success/error
    ComponentOps-->>EditorHandler: property result
    EditorHandler->>EditorHandler: accumulate errors
    alt All properties succeed
        EditorHandler->>UnityAPI: mark prefab modified
        UnityAPI-->>EditorHandler: modified
        EditorHandler-->>ServerTool: success response
    else Any property fails
        EditorHandler->>EditorHandler: consolidate error details
        EditorHandler-->>ServerTool: error with failure summary
    end
    ServerTool-->>Agent: result
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

🐰 Prefab properties now bend to our will,
No more YAML edits upon the hill!
ComponentOps whispers, "set it so,"
And serialized fields dance to and fro.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 29.41% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding component_properties parameter to manage_prefabs modify_contents.
Description check ✅ Passed The description comprehensively covers the PR with type of change (new feature), detailed changes made, test results, and documentation updates checkbox confirmation.
Linked Issues check ✅ Passed The PR fully addresses #793 requirements: enables setting serialized fields on prefab components, supports object references (GUID/path/instanceID), and provides automation-friendly API via manage_prefabs with component_properties parameter.
Out of Scope Changes check ✅ Passed All changes are directly scoped to implementing component_properties parameter for manage_prefabs, including C# backend, Python interface, comprehensive tests, and a minor test manifest path adjustment.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 1 issue, and left some high level feedback:

  • The change to TestProjects/UnityMCPTests/Packages/manifest.json hardcodes a user-specific absolute path for com.coplaydev.unity-mcp; please revert this to a project-relative path so the test project remains portable for other developers and CI.
  • In ManagePrefabs.ApplyModificationsToPrefabObject, missing/invalid component types short-circuit and return immediately while property-set failures are aggregated; consider aggregating component-level errors as well (or allowing partial success) for more consistent error handling when multiple component types are specified.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The change to TestProjects/UnityMCPTests/Packages/manifest.json hardcodes a user-specific absolute path for com.coplaydev.unity-mcp; please revert this to a project-relative path so the test project remains portable for other developers and CI.
- In ManagePrefabs.ApplyModificationsToPrefabObject, missing/invalid component types short-circuit and return immediately while property-set failures are aggregated; consider aggregating component-level errors as well (or allowing partial success) for more consistent error handling when multiple component types are specified.

## Individual Comments

### Comment 1
<location> `TestProjects/UnityMCPTests/Packages/manifest.json:3` </location>
<code_context>
 {
   "dependencies": {
-    "com.coplaydev.unity-mcp": "file:../../../MCPForUnity",
+    "com.coplaydev.unity-mcp": "file:/Users/davidsarno/unity-mcp/MCPForUnity",
     "com.unity.ai.navigation": "1.1.4",
     "com.unity.collab-proxy": "2.5.2",
</code_context>

<issue_to_address>
**issue (bug_risk):** Using a user-specific absolute file path in the manifest will break on other machines/CI.

This absolute path will only work on your machine. Please revert to a relative `file:` reference or switch to a versioned package source so the project remains portable across machines and CI.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

{
"dependencies": {
"com.coplaydev.unity-mcp": "file:../../../MCPForUnity",
"com.coplaydev.unity-mcp": "file:/Users/davidsarno/unity-mcp/MCPForUnity",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (bug_risk): Using a user-specific absolute file path in the manifest will break on other machines/CI.

This absolute path will only work on your machine. Please revert to a relative file: reference or switch to a versioned package source so the project remains portable across machines and CI.

- Revert manifest.json from absolute path back to relative file:../../../MCPForUnity
- Change componentProperties error handling to aggregate all errors (missing
  types, missing components, property failures) instead of short-circuiting on
  the first component-level error

Addresses PR CoplayDev#802 review feedback from Sourcery.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
TestProjects/UnityMCPTests/Assets/Tests/EditMode/Tools/ManagePrefabsCrudTests.cs (1)

725-921: LGTM — good coverage of success, multi-component, child-target, and both error cases.

One nit: Line 798 calls EnsureFolder(TempDirectory) inside SetsOnChildTarget, but SetUp() already guarantees the folder exists. Harmless, but slightly inconsistent with the other new tests.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@TestProjects/UnityMCPTests/Assets/Tests/EditMode/Tools/ManagePrefabsCrudTests.cs`
around lines 725 - 921, The test
ModifyContents_ComponentProperties_SetsOnChildTarget redundantly calls
EnsureFolder(TempDirectory) even though SetUp() already ensures the folder
exists; remove the EnsureFolder(TempDirectory) call from the
ModifyContents_ComponentProperties_SetsOnChildTarget test method so it matches
the other tests' setup and avoids the unnecessary folder creation step, leaving
the rest of the method (creation of root/child GameObjects, saving prefab, and
assertions) unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@MCPForUnity/Editor/Tools/Prefabs/ManagePrefabs.cs`:
- Around line 761-803: The current ApplyModificationsToPrefabObject flow returns
early on type-resolution or missing-component errors
(ComponentResolver.TryResolve, targetGo.GetComponent) which discards previously
accumulated property errors and also returns before SaveAsPrefabAsset so no
changes are persisted; change the behavior to always accumulate all errors into
the existing errors list (instead of returning early) for failures from
ComponentResolver.TryResolve and missing component checks, and only return once
after processing all component entries; update the final error message to state
that "no changes were saved" (or similar) instead of "some", and only proceed to
call SaveAsPrefabAsset when errors.Count == 0 so modifications are persisted
only on success.

In `@Server/tests/test_manage_prefabs.py`:
- Around line 22-32: The test
test_tool_description_mentions_component_properties can raise a KeyError when
prefab_tool lacks a "kwargs" key; change the description lookup to use safe .get
calls so desc = prefab_tool.get("description") or prefab_tool.get("kwargs",
{}).get("description", "") — i.e., use prefab_tool.get("kwargs", {}) instead of
prefab_tool["kwargs"] when computing desc to avoid KeyError on prefab_tool.

In `@TestProjects/UnityMCPTests/Packages/manifest.json`:
- Line 3: The manifest.json currently points "com.coplaydev.unity-mcp" at an
absolute, single-developer path; change its value to a repository-relative file
URL (e.g., a relative "file:..." path inside the repo) or to a published package
version so other contributors/CI can resolve it; update the entry for
"com.coplaydev.unity-mcp" accordingly (use forward slashes, correct relative
traversal like ../ if the package lives alongside the project) and then verify
by restoring packages in Unity/CI.

---

Nitpick comments:
In
`@TestProjects/UnityMCPTests/Assets/Tests/EditMode/Tools/ManagePrefabsCrudTests.cs`:
- Around line 725-921: The test
ModifyContents_ComponentProperties_SetsOnChildTarget redundantly calls
EnsureFolder(TempDirectory) even though SetUp() already ensures the folder
exists; remove the EnsureFolder(TempDirectory) call from the
ModifyContents_ComponentProperties_SetsOnChildTarget test method so it matches
the other tests' setup and avoids the unnecessary folder creation step, leaving
the rest of the method (creation of root/child GameObjects, saving prefab, and
assertions) unchanged.

- Error message now says "no changes saved" instead of misleading "some"
- Use .get("kwargs", {}) to avoid KeyError if registry entry lacks kwargs

Addresses CodeRabbit review feedback on PR CoplayDev#802.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@dsarno dsarno merged commit 6ee7ffb into CoplayDev:beta Feb 21, 2026
2 checks passed
dsarno added a commit that referenced this pull request Feb 21, 2026
…udge) (#804)

* fix: remove broken root rename assertion from prefab test

LoadAssetAtPath returns the asset filename as .name for prefab roots,
not the internally renamed root object name. Remove the rename + assert
that was causing CombinesWithOtherModifications to fail. The test still
verifies that componentProperties works alongside position changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: remove yield frames causing StdioBridge reconnect test flakiness

The 5-frame yield between client2 handshake and ping created a window
where the MCP Python server could reconnect and close our test client
as stale. Stale-client cleanup runs synchronously in HandleClientAsync
before the read loop, so no yield is needed after reading the handshake.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: ensure focus nudge fires and logs correctly during test polling

- Add file handler to root logger so __name__-based loggers (focus_nudge,
  run_tests) write to the log file instead of only stderr
- Add fire-and-forget nudge check on non-wait_timeout get_test_job calls
  so stalls are detected regardless of client polling style
- Add 13 unit tests for should_nudge logic, backoff reset, and gating

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address PR #804 review feedback

- Store asyncio.create_task reference in module-level set to prevent GC (CodeRabbit)
- Add test for _get_frontmost_app() returning None (CodeRabbit nitpick)
- Add comment explaining why prefab root rename is not tested (Sourcery)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add Claude Code to MCP client examples in README

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support modifying serialized fields on prefab assets (e.g. manage_components for prefabs)

1 participant