unity-so-prefab-manager
Unity SO-Prefab Manager
This skill enforces a strictly modular "Bridge" pattern between Data and Logic.
Core Workflow: The Bridge Pattern
To ensure that multiple instances of the same unit (e.g., 4 Robots) can have independent runtime values (Health, Energy) while sharing the same Template (RobotSO), follow these steps:
1. Structure the ScriptableObject (The Template)
The SO should contain Static/Read-Only data that defines the "Ideal" version of the object.
- Example:
maxHealth,baseSpeed,displayName.
2. Structure the MonoBehaviour (The Instance)
The script on the Prefab should contain Runtime/Mutable data and a reference to the SO.
- Example:
currentHealth,activeBuffs.
3. Initialize the Bridge
Use Awake() to copy values from the SO to the local instance variables.
[Header("Data Reference")]
[SerializeField] private RobotSO data;
[Header("Runtime State")]
private float currentHealth;
private void Awake() {
if (data == null) {
Debug.LogError($"[System] Fail: Missing SO data on {gameObject.name}");
return;
}
// Initialize independent state
currentHealth = data.MaxHealth;
Debug.Log($"[{data.name}] Success: Initialized instance | Health: {currentHealth}");
}
Advanced Usage
1. File Creation: API-First vs. YAML Power-Mode
Standard (1-10 Files) - Use Unity API
For most tasks, use mcp_unityMCP_manage_scriptable_object. This is the healthiest method as it ensures GUID integrity and immediate .meta file availability.
- Workflow:
Call manage_scriptable_object->Apply Patches.
Performance (10+ Files) - Use YAML Generation
For massive data dumps (e.g., importing 50 items), bypass the API latency by writing files directly.
- Workflow:
- Create a YAML template based on an existing
.assetfile. - Write
.assetfiles directly toAssets/Data/viawrite_to_file. - Call
mcp_unityMCP_refresh_unity(scope="assets")to force Unity to generate.metafiles.
- Create a YAML template based on an existing
2. Surgical YAML (Deep Debugging)
Use direct file reading/parsing for "Deep Audits" that the API can't quickly handle:
- GUID Verification: Search for a specific
m_Script: {fileID: ..., guid: ...}in prefabs to find which scripts are actually attached. - Reference Repair: Use
grep_searchandreplace_file_contentproject-wide to swap broken GUIDs without opening the Editor for every file.
Reference Material
- See references/bridge-pattern.md for detailed implementation details and troubleshooting.
- See references/naming-conventions.md for the project-standard folder structure.
- See references/yaml-templates.md for standard Unity YAML boilerplate.
More from muharremtozan/unity-agent-skills
unity-fsm
Specialized skill for implementing a robust, extensible Finite State Machine in Unity using the State and Strategy patterns. Based on the pattern by Adam Myhre (3D Platformer). Use when creating complex AI, player controllers, or any system requiring structured state management.
11unity-code-reviewer
Professional Unity C# Code Reviewer. Detects anti-patterns, performance leaks, and enforces project-specific architecture.
10unity-assembly-management
Manage project boundaries using Assembly Definitions (.asmdef) for faster compile times and modular architecture. Based on the patterns by Adam Myhre. Enforces responsibility-based organization and handles Runtime/Editor/Tests splits.
9unity-event-bus
Advanced code-driven event bus with reflection-based bootstrapping. Provides zero-setup global messaging.
9unity-ui-data-binding
Implementation of MVVM-style Data Binding for Unity UI Toolkit using the [CreateProperty] attribute and BindableProperty wrappers.
9unity-observer-pattern
Reactive Property system for Unity. Decouples data from UI and logic using observable wrappers and UnityEvents.
8