Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

New! Unity Merge for merging scenes and GameObjects

Discussion in 'Assets and Asset Store' started by scone, Jul 1, 2013.

  1. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Howdy folks!

    We've released one of our stupendous editor extensions, and it was just accepted to the Asset store! If you've ever struggled with manually merging GameObjects between scenes or prefabs, suffer no more! Unity Merge provides a powerful, easy-to-read interface to compare and merge gameObjects. Check out more on Unify and AssetStore.

    $8a73c994-4f8b-462f-8558-6190cb62116d_scaled.jpg
     
    Last edited: Jul 4, 2013
  2. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    demo?
     
  3. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Demo coming soooooon. You can pretty much guess what it does from the screenshots, and reading the documentation
     
  4. carl010010

    carl010010

    Joined:
    Jul 14, 2010
    Posts:
    139
    Umm their seems to be no screenshots buddy.
     
  5. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Nowai. Here's one from the store page, and one from the wiki.
     
  6. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Update: We've submitted a version compatible with Unity 3. Had the following issues:
    • MaskField not supported, switched to GenericMask for component filtering
    • Minor semantic changes, switching to old deprecated methods (new versiond don't exist in Unity 3 API)
    • Some SerializedProperty comparisons and set operations weren't supported. Need to figure out how to get them back

    The rest weren't issues, but for posterity, I'll explain a bit more. For one thing, I started with the goal of Unity 3.0 compatibility. This meant that I had to downgrade the entire project I was using for submission and that the two prefabs and GUISkins were converted to binary. I ended up having to switch out a bunch of ObjectField calls because I added the AllowSceneObjects parameter to avoid compiler warnings. Likewise, there were a couple of newly-deprecated functions I had to swap out.

    Detecting whether the editor was in the editor skin was fun. Just had to look that one up.

    Finally, however, the main change was to a comma-separated string for component filtering, instead of the big block of drop-downs. It will tell you whether your string works (whether your classes are named right or are actual components), but this seems to be our only recourse in lieu of the MaskField GUI control. Someone on IRC suggested GenericMenu, so I'll look into that.

    Once I got everything working again, it was time to submit. Hoo boy. So for one thing, I had forgotten that Unity didn't have AssetStore until 3.1. Especially considering this fact, I was surprised by the fact that you guys pick the minimum platform by the version of Unity you use to submit the app. Aside from the obvious inconvenience of having both versions of Unity installed, I think this method is a little problematic.

    For one thing, the AssetStoreTools won't work on Unity 3.2 (at least for me). I get an error about the window not existing, and don't see it when I open up the assembly. Even when I go to Unity 3.3, I have to reimport the assembly to get it to work.

    Also, since I'm tracking my code with a git repository, the constantly changing meta files are a bit of an issue. Anyway, it's finally submitted, so you U3 users are all set!
     
  7. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Oh and also, please post any issues you find here. I'll be the first to admit that the comparator and copy feature will fail on certain property types (GUIStyles are one known issue) due to some weirdness in SerializedProperty. I'm not convinced that it's UT's fault, but I haven't quite gotten a "perfect" situation going. As you might imagine, there are a LOT of edge cases when you're dealing with "any old object"
     
  8. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Name now changed to UniMerge to avoid confusion (not developed by UT)
     
  9. PatHightree

    PatHightree

    Joined:
    Aug 18, 2009
    Posts:
    297
    Awesome development, I'm very curious about this tool's workflow.
    Can't wait to try out the demo :)
     
  10. eelkenet

    eelkenet

    Joined:
    Jun 4, 2013
    Posts:
    3
    Hi Scone,

    I am trying your demo on Unity 4.2, but the tool looks different from your screenshot (rather confusing window).
    It seems there are some textures missing. :confused:

    $Schermafbeelding 2013-08-01 om 11.02.02.png


    EDIT: Also, merging scenes crashes Unity.
    EDIT2: Skin problem is known issue, fixed with http://wiki.unity3d.com/index.php/Unity_Merge#Known_Issues
     
    Last edited: Aug 1, 2013
  11. eelkenet

    eelkenet

    Joined:
    Jun 4, 2013
    Posts:
    3
    A follow-up on my edit above: the crash seems to appear when Deep Copy is checked. But when the skin problem appears (every start-up!) this option can't be unchecked until the Skin issue is solved.

    This makes it a very sluggish and buggy process.

    Also after merging, instead of a truly merged scene, the "mine" scene (In this case Demo) does not just contain merged game-objects, but 2 new and identical empty gameObjects: "mine" and "theirs". Are we missing something here, or is this really what is supposed to happen? That would mean that after merging you still have to drag around gameObjects by hand, just to get your own hierarchy back.

    $Schermafbeelding 2013-08-01 om 12.02.16.png

    To be honest, while this plugin is a good idea and has great potential, currently it is very much unfinished and imo should not be for sale yet.
     
  12. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    :(

    I'm sorry you're having trouble, but most of these issues haven't been happening for me on the development side. I've tested the tool quite thoroughly with both the demo scene as well as my own projects. I'm currently working on some fixes that should solve your problems. The crash somehow hadn't come up until just recently, which is indeed a huge problem! I'm not sure if it's a new thing after the upgrade to 4.2, or what. I've been able to reproduce it now, and I'll get the fix to you ASAP.

    You are in fact missing something regarding the scene merge issue. The issue you're describing is why the "Unpack Mine" and "Unpack Theirs" buttons are there. Once you're done merging, you simply click either one, depending on which object (mine or theirs) you want to become your scene root. That will do the "dragging around" for you!

    As I said, I'm working on fixes as I write this, so stay tuned!
     
  13. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Regarding the Unity crash, were you finding that this happened any time OTHER than using the copy-left or copy-right arrow buttons on the top level? I was able to reproduce a crash here (since this is kind of a special case and really kind of besides the point of the tool since it just deletes one object and duplicates the other) but nowhere else. This issue has been fixed, but please let me know if any other behavior crashes the program.
     
  14. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Fixes, fixes, everyone!

    I've just submitted version 1.2 of UniMerge for approval. This version fixes:
    • Crash bug when coyping top-level object right or left
    • Default path wrong when moving scripts around
    • Skin missing button/toggle images
    • Losing prefab connection when copying sub-objects
    • Re-ogranized files (now everything is inside the ObjectMerge folder)
    • Renamed menu group from ObjectMerge to UniMerge
    • Now copies object references that aren't GameObjects or Components
    • NullPointer protection
    • Removed default parameter specifiers which caused errors when using MonoDevelop to debug

    These fixes have been made in direct response to user feedback, both here and in e-mails sent directly to me and the Defective team. Thanks for your patronage, your feedback, and your patience! Keep it coming!

    P.S. If you're a satisfied customer, please drop a review on the AssetStore page!
    P.P.S. If you really want the latest version and can't wait until it gets approved, send me a Private Message, and I'll give you my e-mail address. I'll ask that you send me a zip of the current version of the tool to verify that you've already bought a copy and I'll reply with a copy of the latest version.
     
  15. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Not to post to my own thread three times in a row, but I've just updated the tool and created the first of (hopefully) many demo videos! Check out the youtube, and the changelog:

    http://youtu.be/SWmca1Ozntw

    Also, we're at version 1.4.2 now. This means:
    • Row height selector
    • Automated refresh (no more refresh button)
    • Added RenderSettings to SceneMerge
    • Various fixes and improvements ;)
     
  16. robot-ink

    robot-ink

    Joined:
    Jul 1, 2011
    Posts:
    18
    hello

    Great tool! There are errors in Utils.cs in unity 4.5:

    'the label "case 16:" already exists in this switch statement.'

    looks to be something comparing serialized Quaternion types?
     
  17. PrefabEvolution

    PrefabEvolution

    Joined:
    Mar 27, 2014
    Posts:
    225
  18. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    Just went to upgrade a project to 4.5 and got his error.
    Is there a codefix?
     
  19. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Hey there. Sorry to neglect this thread. The quaternion error has been fixed in the latest version, which also now correctly supports Git on windows, and is much faster!
     
  20. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Another major update includes a fix for problems that cause MAJOR slowdowns and often locked up Unity entirely.

    It turns out that if you make a change to a scene with prefabs that contain merge markup (like git's >>>>> markup), Unity prints a warning to the console. Doing a merge on such a scene causes this warning to fire thousands of times, locking up Unity. I've added a case to halt the merge if this happens, telling you to to merge the prefabs first.

    Merging prefabs has also been improved. If you try to merge the prefab assets themselves, UniMerge will now automatically drop them into the current scene and do the merge on those copies.

    Finally, there have been major improvements to the VCS hook script, which now works in TortoiseGit and PlasticSCM as a diff/merge tool. This means you can go straight from your log or diff viewer to UniMerge! I'll be putting out a video about this soon.
     
  21. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    I guess no one has any issues with UniMerge, eh? It's still selling, which is a good sign, and a few users have e-mailed me or rated the tool with issues. In fact, the latest version, 1.7 is in response to a particularly nasty review that rightly called me out on a couple of failings. I've fixed the greatest one, which is the GUI slowness that was happening even on moderately-sized scenes. After a quick refactor, I was able to browse diffs on up to 50,000 objects!

    Doing actual merge operations (copy left/right) is still a little sketchy at that level, but does anyone really have a 50K-object scene? Unity itself has trouble making changes to the hierarchy at that point...

    Anyway, the new GUI might put a bad taste in your mouth because it uses a slider instead of a scroll bar, (sorry, I tried a non-scrollview scrollbar but it was buggy as hell) but trust me, this is way better! If you've already bought the tool, now's a great time to update! If not, go buy it already!
     
  22. OnePxl

    OnePxl

    Joined:
    Aug 6, 2012
    Posts:
    307
    I haven't been collaborative lately… :p
     
  23. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Boo... go collaborate! Haha I kid. To be honest I've also had a hard time getting some "real-world" testing done on the tool, since we spent so much time trying to force scene merges out of our pipeline. Anyway, keep the feedback coming! Thanks to everyone for buying (and making March 2015 our second-best full-price sales month!)
     
  24. dreasgrech

    dreasgrech

    Joined:
    Feb 9, 2013
    Posts:
    205
    I bought the plugin and trying it out atm, and it looks great.

    But I have one issue with it, namely with the Object Merge since that's the only thing I need to use.

    It seems that when I do a "Copy theirs" merge from theirs to mine, the existing objects on mine are removed and replaced with new, "cloned" versions of theirs and this causes me some problems, because other objects that were previously referencing my original object have now lost their references since my original object was destroyed.

    Is there any way to make it actually copy the components (and only create new GameObjects when they don't exist on mine) from theirs to mine rather than destroy my original objects and replace them with cloned versions of theirs?

    Thanks.
     
    Last edited: Jul 2, 2015
  25. scone

    scone

    Joined:
    May 21, 2008
    Posts:
    244
    Hi there,

    Sorry that I let this sit for so long. I've made a few updates to the tool since then. Is this still an issue? The idea of the "deep copy" feature is to try to maintain all of those old references, and I've recently expanded its functionality. In the case of a whole-object copy, it's just too messy to try to analyze all of the child objects and see what exists and what doesn't. However, I can see how this might cause you issues.

    I would love to work with you to break down your specific use-case and try to find a general solution, but I can understand if you don't have the time.

    Have you tried the latest version of the tool? Have my latest updates helped?

    Thanks for buying, and reporting on your findings! PM me if you want to discuss this further.
     
  26. Ben-BearFish

    Ben-BearFish

    Joined:
    Sep 6, 2011
    Posts:
    1,204
    @scone Is support for this plugin discontinued?
     
  27. gdp2

    gdp2

    Joined:
    Dec 6, 2016
    Posts:
    28
    I still use it and it works great, for the most part. The most recent release was on Mar 26, 2018 and the developer still replies to help requests via his email address. I'd say UniMerge is still going strong!