If you find yourself regularly needing to copy Components from one GameObject to another (or even multiple), you have probably realized by now that this workflow quickly becomes very tedious. SmartCopier is a tiny utility that improves this, and provides a smooth and easy user experience.
Features Copy any number of Components instantly Select which properties of each Component you wish to copy Paste the Components to all selected GameObjects Specify custom types and attributes for Components or properties to ignore by default Full source provided, features fully accessible through code-first API
How to use
SmartCopier requires no setup and is immediately available for any GameObject in your project. You can watch the video for a quick intro or read the instructions below.
Right-click any GameObject or component in the inspector.
Click “Smart Copy Components” at the bottom of the context menu.
This will open the SmartCopier window where all of the GameObject’s Components will be displayed.
Toggle any Component and their respective properties you wish to copy.
Select any amount of GameObjects you wish to copy the Components to and click “Paste And Replace” or “Paste As New”
What’s new
SmartCopier v2.0 is out now! This version includes:
A complete rewrite of the code
A new developer-centric API that is easy to extend
Prettier user interface
Requirements
Supports Unity 5.0 and above. Requires no additional setup. SmartCopier will work as soon as you import the package!
Roadmap
Some features that will be implemented in the future:
Save property selection for each Component type to a preset
Add default ignored Components or properties through GUI (currently only accessible through code)
Dedicated settings panel to access certain features that are only available through code right now
Support
Feel free to ask me here if you need any support. I’d also love to be notified if you find any problems or bugs, or come up with ideas for improvement.
I see that the asset hasn’t been updated for a while, yet support is still very active.
Should I assume there was no good reason to push an update and that it still works perfectly in Unity 2019.1.0f2 even when entering/exiting prefab/subscene mode?
Hi everyone, thanks for your interest in SmartCopier.
Apologies for my lack of replies here - email notifications seem not be working as expected. I will look into all reported issues and report back to you as soon as I have an update. You can expect this to be rather soon!
Update: @endae 's issue where required components would sometimes be duplicated when being copied to a new object has been resolved in version 2.1 of SmartCopier. You can download the update from the Asset Store!
Yes! This should work straight out of the box. If you experience any problems you can write me on this forum, send me an email, or request a refund of course if the issue not resolved in time.
I posted about the missing of the “Constraints” fields from the Rigidbody many weeks ago. Does the new version 2.1 fix that issue? Or, can you confirm if that issue does exist?
I can confirm this particular issue still exists in version 2.1. I can explain why: SmartCopier technically doesn’t copy over ALL serializable properties of an object. This is to avoid copying over unwanted properties such as its id, the reference to the GameObject it is on, etc. Instead, SmartCopier copies all “visible” serializable properties - the ones you see in the inspector. However, Unity implements custom inspectors for all of its “native” components. As a result, the “Constraints” property, which is serializable but normally “hidden”, becomes visible. Because SmartCopier has no way of knowing it is a “visible” property, it is not copied.
There’s no straightforward solution that I could find. But I will look into implementing a custom fix for this particular component (Rigidbody). I’ll keep you up to date.
Sorry to hear that it isn’t working as expected for you. Can you try the following things for me:
Completely delete the “SmartCopier” folder from your Assets folder.
Re-import SmartCopier from the Asset Store, making sure that you get the latest version.
See if everything works as expected now - try copying Components again.
If the issue persists, it would help me to know the following information from you:
Your version of Unity.
The version of SmartCopier you are / were using.
Which Component types are causing issues (all Components or specific ones?).
If I can identify the bug, I will try to provide a fixed version as early as possible. You can also PM or email me (email address if found here) me if you want to request a refund.
Thank you again for reporting the issue. Thanks to your description I was able to find the bug and fix it. I have submitted a fixed version of SmartCopier to the Asset Store. Note that this can take a few days to be approved by Unity.
If you want, I can also send you a fixed version immediately (privately).
Hello, can this tool copy multiple components in childs based on the names of the gameobjects with couple of clicks?
For example:
I got 2 armatures exported from blender. The first armature was modified in unity and has components added to the bones for procedural animations.
The second armature has has a changed rig, a different hierachy but the bone names are all still the same name. There are however some bones that might be deleted.
This is how an example Hierachy could look like:
Armature 1(Source)
Root
Hip
Back
LegL(comp1,comp2,comp3)
LegR(comp1,comp2,comp3)
Armature 2 (Target with changed Hierachy)
Root
Hip
LegL <- Components should be automatically copied here by comparing the names and ignoring the hierachy
LegR <- Components should be automatically copied here by comparing the names and ignoring the hierachy
Back
What I am looking for is finding a tool, that compares both armatures and copies the components in editor to the new armature by comparing ALL BONES and ignoring bones or objects that doe not exist.