Search Unity

Maintainer

Discussion in 'Assets and Asset Store' started by codestage, Mar 10, 2015.

  1. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey, @mwgray !

    Thanks for your report, though this is weird :/

    Could you please provide some additional info:

    - does it reproduces in new empty project?
    - does it reproduces if you move CodeStage folder out from Plugins to the root Assets folder?

    Thanks!
     
  2. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hi again, @mwgray !

    I confirm it's a bug on my side, fix will be available at UAS as soon as it will get through the review.
    For now, as a workaround, just pull the CodeStage folder out from the Plugins folder, or put it into the Plugins/Editor folder.

    Or I may send you update with fix via PM, just let me know.

    Thanks for your report!
     
    mwgray likes this.
  3. The_Arrival

    The_Arrival

    Joined:
    Dec 3, 2014
    Posts:
    82
    Is it possible to include a check for unused Layers/Tags. I´m currently struggeling making sure if a Layer/Tag i set up once is still used anywere in the Project or in my Code.
     
    codestage likes this.
  4. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    @The_Arrival thanks for your feature request, just added this to my TODO, will think how to include this into one of the modules.
     
    mcmorry and docsavage like this.
  5. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey everyone, just a tiny WIP update.
    Work on the next update moving forward, Issues Finder module gets few improvements and fixes, here is my fav:
    http://i.imgur.com/xW2p6N2.gifv

    But most of the work dedicated to the improvements of the recently introduced Project Cleaner module.
    Finally, it can search your project for the unused assets to help you out get rid of the extra garbage.
    It's not going to find the the unused scripts though since it's nearly impossible to avoid false positives here.

    Here it found few unused assets in freshly downloaded Unity's Space Shooter project from the Asset Store:



    UI of this module will change significantly closer to the release, so for now just ignore the UI part please =)
     
    docsavage and orb like this.
  6. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey everyone!

    Just an another Project Cleaner WIP update I wish to share with you!
    Here is how Project Cleaner window looks now:



    Now each found garbage item is collapsed to the compact mode by default. It bay be expanded and collapsed back by click on whole item area or that little arrow at the left.

    Also you may see the physical size of all found items, all selected items and of specific expanded item.

    Those strange buttons "S", "R", etc. are going to be replaced with much more meaningful icons, no worries! =D

    I also made new Ignores \ Includes (now it called Filters) tab for scenes at the Project Cleaner (to let you choose which scenes are needed and should be ignored from the garbage search):


    Going to add that Scenes Ignores tab to the Issues Finder as well, for more precise control on which scenes to scan for issues.

    Thanks for reading this and stay tuned for the news!
     
    docsavage and mcmorry like this.
  7. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey guys!

    Maintainer update is slowly but unstoppable moving towards release, now at the polishing stage with tiny by-the-way improvements.

    One of the new features you'll see - automatic issues fix for some issues types (only few so far, but more in future).

    Here is an example of the Missing Component resolution:
    Animation3.gif

    If you used Maintainer before, you may notice how some other things changed and improved. I hope you like those changes.

    Why I'm posting all this now and not when it's finally ready to download?
    Because I'm thinking about tiny price up for the update (not decided if it will be done for this update yet though), so I'd like to give you a chance to get it cheaper if you're not my customer yet and if you're interested in Maintainer.

    Thanks for reading this!
     
    mgmhunt and mcmorry like this.
  8. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,021
    That looks great. If you have that working reliably then it's more than useful. Re the price you know best and what will sell. If you are going to put the price up then you could put it on sale for a short time and add it to the secret sale thread here - http://forum.unity3d.com/threads/what-is-on-secret-sale.403998/page-4. Hoepfully it will get more notice.

    Great product.
     
    codestage likes this.
  9. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey, @docsavage !
    Thanks for your feedback!

    Yes, it's reliable, without Unity crashes, etc. Batch mode (removes all missing components in whole project) works too.
    It was unexpectedly challenging task actually and I did tried few different ways of missing components removal before I found that one which works reliably and stable across all supported Unity versions.

    I actually totally suck at pricing! =D
    Just trying to experiment more...
    Never tried to make a secret sales before, thanks for the tip!
    Though I heard from other publishers it may not work well and even may make a damage for sales in some cases =\
    I'll think about making such sale anyway, sounds like an another good experiment with pricing =)
     
  10. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,021

    I am terrible at pricing as well. It's one of the reasons my main business is on it's back. I always feel guilty asking for too much money then end up working stupid hours for nothing. I should have let my wife manage that side of the business:)

    Seriously though if you are not sure about what to charge maybe you could try and get more feedback from other devs first. I imagine a lot would be happy to help especially when there doesn't seem to be many other tools that do what maintainer does.

    :)
     
  11. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    It's a good idea, will ask few dev guys around first, thanks! =D
     
    docsavage likes this.
  12. mrleon

    mrleon

    Joined:
    Sep 27, 2014
    Posts:
    18
    Hi, I just got Maintainer, seems useful. I'm trying it out for the first time on an existing project using Unity 5.4.0f3 and I get the error below, anything I can do to make it work? Thanks

    [Maintainer]</b> Issues Finder: something went wrong :(
    System.ArrayTypeMismatchException: Source array type cannot be assigned to destination array type.
    at (wrapper stelemref) object:stelemref (object,intptr,object)
    at System.Collections.Generic.List`1[UnityEngine.Component].Add (UnityEngine.Component item) [0x0001a] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:92
    at CodeStage.Maintainer.Issues.IssuesFinder.CheckObjectForIssues (System.Collections.Generic.List`1 issues, System.String path, UnityEngine.GameObject go, Boolean checkingScene) [0x00184] in unity/Assets/Plugins/CodeStage/Maintainer/Editor/Code/Modules/RecordsBased/Issues/IssuesFinder.cs:361
    at CodeStage.Maintainer.Issues.IssuesFinder.ProcessPrefabFiles (System.Collections.Generic.List`1 issues) [0x00076] in unity/Assets/Plugins/CodeStage/Maintainer/Editor/Code/Modules/RecordsBased/Issues/IssuesFinder.cs:269
    at CodeStage.Maintainer.Issues.IssuesFinder.StartSearch (Boolean showResults) [0x000b5] in unity/Assets/Plugins/CodeStage/Maintainer/Editor/Code/Modules/RecordsBased/Issues/IssuesFinder.cs:107
    UnityEngine.Debug:LogError(Object)
    CodeStage.Maintainer.Issues.IssuesFinder:StartSearch(Boolean) (at Assets/Plugins/CodeStage/Maintainer/Editor/Code/Modules/RecordsBased/Issues/IssuesFinder.cs:136)
    CodeStage.Maintainer.UI.IssuesTab: ProcessUserActions() (at Assets/Plugins/CodeStage/Maintainer/Editor/Code/UI/Tabs/IssuesTab.cs:40)
    CodeStage.Maintainer.UI.RecordsTab: Draw(MaintainerWindow) (at Assets/Plugins/CodeStage/Maintainer/Editor/Code/UI/Tabs/RecordsTab.cs:62)
    CodeStage.Maintainer.UI.MaintainerWindow:OnGUI() (at Assets/Plugins/CodeStage/Maintainer/Editor/Code/UI/MaintainerWindow.cs:142)
    UnityEditor.DockArea:OnGUI()
     
  13. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey, @mrleon

    Thanks for reporting this.
    It looks really strange!

    Would be great to take a look at the project where it happens.
    It fails to add component to the list of components, and I have no idea why without repro case I can dive into =(
     
  14. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    Could it be a missing components?
     
  15. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Shouldn't be, since they are filtered out before this code (via check for null).
     
  16. mrleon

    mrleon

    Joined:
    Sep 27, 2014
    Posts:
    18
    The project is pretty huge so it's hard to share and/or narrow down what is causing it — it fails when Maintainer is going through checking prefabs (more than 2000 of them). It's ok though — I think I'll just save this asset maybe for next time, trying to find the cause problem file might not be worth it in my case!
     
  17. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    @mrleon totally understandable, thanks for taking your time to report it anyway, I'll try to make nicer error output for such cases to make it clear which object was checked at the moment of the error.
     
  18. gray24

    gray24

    Joined:
    Aug 1, 2016
    Posts:
    14
    русский язык - разрыв шаблона). Видел видео с вами, странно что майнтайнер в топе форума, несмотря на то что видео давнишнее. Подскажите плиз где можно рекламировать ассет, кроме как здесь?
     
  19. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    @gray24 видео со мной? Вы про вебинар?
    Видео Maintainer'а я давно не обновлял, но в скором времени это произойдет, готовлю к релизу крупное обновление. Свои ассеты я не рекламирую, не подскажу по рекламе ничего интересного.

    Лучше не шокировать других участников форума и перейти в личку (или скайп, телеграм, почту и т.д.) для дальнейшего общения на русском =)
     
  20. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    @Dmitriy-Yukhanov Feature request:
    Search for unused layers. After 3 years of developing, the list of layers is a bit messy, and I'm pretty sure that some layers aren't used anymore.
    A search on prefabs and GameObjects in the scenes would be very useful. A search in the code would be a plus, but it already be done with a code editor.

    Also, any eta for the new version?
     
  21. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey, @mcmorry !
    Unused layers search is something I thought before, but rejected it because I can't say with 100% precision some layer is not used since it may be used from code in various forms, including dynamic layer name concatenation.

    Now I see this feature is pretty often requested so I'm going to implement it with warn about not 100% correctness. Added it to my todo again.

    It's already done, but still waiting for me to update docs and media, unfortunately this process is too slow lately due to high load with other tasks.

    Trying to release it as soon as possible.
     
    docsavage and mcmorry like this.
  22. netics

    netics

    Joined:
    Aug 23, 2011
    Posts:
    102
    Bug Report.
    Below warning happens whenever reloading scripts and failed to load settings.
    MaintainerSettings.asset content is...
    My OS is Windows 7(Korean language).
     
    codestage likes this.
  23. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey, @netics!

    Looks like this is encoding-related, I'll take a look and will get back to you with any results \ news.
     
  24. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    I've found the cause of this bug. I didn't specify encoding directly while saving and loading settings file, thus default system encoding was used.
    In closest update I'll change it to forced UTF-8 encoding to avoid such issues.
     
  25. netics

    netics

    Joined:
    Aug 23, 2011
    Posts:
    102
    When is the estmated arrival time?
     
  26. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    I'll release it as soon as possible, it's dramatically over-delayed already and I'm doing everything possible to speed up the process.
     
  27. netics

    netics

    Joined:
    Aug 23, 2011
    Posts:
    102
    Dmitiry, Release is so late.
    I can't save settings at all. It makes the maintainer not useful at all.
     
  28. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey, @netics
    Oh, I'm really sorry about this! But you may try new pre-release version I've shared with you via PM.
    It should have this issue fixed.
     
  29. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Woohoo, Maintainer 1.3.0.0 is finally live at the store!

    Highlights of this update:

    - UI and results navigation improvements (compact \ detailed view, sorting, etc.):
    CompactDetailedView.gif

    Sorting.gif

    - automatic issues fixes in one-by-one and batch mode
    MissingComponentFix.gif

    - Project Cleaner BETA
    project_cleaner.png

    - lots of fixes and improvements

    Thanks to everyone who reported bugs and requested features, TODO list is still full of great things I'm going to improve \ add with the next updates, stay tuned and see the full changelog for this update below =)

    Here is a full changelog:

    1.3.0.0
    - Project Cleaner out from preview to beta:
    - new unused assets search option
    - now it finds unused assets (experimental mode, be careful!)
    - added Statistics subsection
    - output of the sizes of all found and all selected items
    - empty scenes search deprecated
    - now you can select which scenes to ignore via comfortable tab
    - now any item can be copied to clipboard
    - now all items have icons like in Project window
    - now each found item has delete button for quick deletion
    - fixed empty folders with items beginning from '.' false positives​
    - Issues Finder:
    - auto fix for Missing Components (removes them from Game Object)
    - auto fix for Missing References (resets them to None)
    - new Scene Includes and appropriate filtering level for precise control
    - Path Includes to let you specify where to look for issues
    - improved component issue showing: all collapse except target one
    - duplicates search now checks non-managed types correctly
    - fixed incorrect selection of the objects with issues in rare cases
    - fixed issues in prefab instances could be accidentally skipped
    - fixed exception when running search from scene which was deleted
    - fixed some duplicates and false positives, accuracy increased
    - fixed missing empty animation in some cases
    - fixed missing component duplicates when issue presents in prefab
    - fixed scene wasn't reloaded for analysis in some cases
    - more accurate prefab instances skipping in some cases​
    - icons, icons everywhere
    - compact mode for records in all modules with expansion on mouse click
    - added results sorting to all modules.
    - now assets are saved before search in all modules
    - added support for the Unity 5.5+ ParticleSystemRenderMode.None
    - fixed incorrect id lookup in prefabs
    - fixed incorrect submit on the enter at the filtering tabs
    - fixed notifications were not erased when switching filtering tabs
    - fixed few things to improve compatibility with Unity 5.5
    - fixed default encoding was used for settings file instead of UTF-8
    - code preparation for the results filtering
    - refactorings and code improvements
    - UI improvements
     
    docsavage likes this.
  30. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
    Maintainer doesn't report shader errors, does it?


     
  31. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    @movra Correct, it doesn't support shader errors. Doesn't Unity reports such errors itself?
     
  32. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
    Yes, but after building, during runtime if the shader is used in the scene or when assigning a shader to a material.

    Outside those cases, if there are broken shaders somewhere in the project the errors will only be shown in the Inspector when the shader is selected, not in the console.
     
  33. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    @movra ah, that could be found in editor mode I guess, thanks, added this to my TODO.
     
  34. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
    Thanks for looking into this, even if it may end up impossible. :)
     
  35. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
  36. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey, @TokyoDan

    Such module (UsagesFinder) is under active development and going to be released in one of the next updates.
     
    docsavage likes this.
  37. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    Sold! Thanks.
     
  38. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,021
    Love this asset already and is just getting better:)
     
    codestage likes this.
  39. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey guys, update is available at the Asset Store!

    Mostly improvements and fixes of existing features.
    Usages module is on the way within next updates.

    P.S. Going to a vacation from 1 Aug for few weeks (to mid-late Aug), so please expect increased support replies time during that period.

    1.3.1.0
    - Project Cleaner:
    - auto-exclude for assets set in Player Settings (thx Sebastiano)
    - added workaround for Unity bug to avoid fallback shaders removal
    - fixed additive scene opening (thx Fausto)
    - minor performance improvements across all modules
    - new Usages module preparation work (not ready yet)
     
    AGregori likes this.
  40. nikix22

    nikix22

    Joined:
    Jan 16, 2015
    Posts:
    25
    Hello! :) Is this tool helpful for scenes which content is generated at runtime, from prefabs which are already defined and are not part of the scene before it is started?
     
  41. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey, @nikix22

    Not sure I understood you correctly, but you may check current scene in non-play mode even if it was created fully from code and never was saved anywhere.

    upload_2017-8-16_17-37-14.png
     
  42. nikix22

    nikix22

    Joined:
    Jan 16, 2015
    Posts:
    25
    Hi! Thanks for fast replay. I have following situation. I have scene and levels are defined in text file. In scene before Play, in editor there are some basic stuff, fixed objects like camera, water etc. This tool can for sure upon build info or log to determine which prefabs are used etc. and to determine which are unused. That is clear. After start the scene prefabs are dinamicaly loaded into scene, some are used, some not (but that is OK, I know that I need it in another case). So my question is about some assets which are not used ever, I need to find them and to remove it to decrease project size. I am in doubt, is this tool will detect as unused, prefabs which are needed but not loaded at the moment dinamicaly into current scene?
     
  43. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Cleaner module will detect as unused only those prefabs which are not referenced anywhere in the project and are not placed in any special folder you have access from scripts (like Resources one).
    It doesn't check the actual use of assets at runtime (e.g. if something referenced was loaded or not after all).
     
  44. Xtro

    Xtro

    Joined:
    Apr 17, 2013
    Posts:
    608
    Hi Dmitriy,

    Were you able to add this feature you mentioned long ago?

    https://forum.unity3d.com/threads/f...sset-references-released.371304/#post-2887478
     
  45. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey, @Xtro

    It's under development right now and will be released as a new module of the Maintainer in one of the next updates.
     
  46. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey guys!

    I'm glad to announce I'm finishing new core which going to be common for the Project Cleaner and new Usages Finder (name may change) module.

    This new core boosts Project Cleaner performance up to x6 times according to the tests (except first search per project, it may be similar or bit slower) and increases its accuracy.

    While Usages Finder is under construction, I'd be glad to start sharing a beta version of new Maintainer to licensed customers to let them test the updated Project Cleaner and provide some feedback on the usage experience.
    First Usages Finder module version will be passed to the beta testers as well (if desired).

    Feel free to PM me if you're interested (and please drop your invoice No) to become a beta-tester.
     
  47. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Heya!

    I'm here to announce new Usages Finder module is almost finished and almost fully functional at the moment.
    Core and logics are done and now some stuff needs to be finalized, polished, documented, etc.

    It shows where all your assets are used, can quickly navigate you to the usage place.
    It can navigate inside of the scene, select object and fold all scripts except the script of the interest, if needed.
    It tries to handle specific cases, like icons for objects, leaked into the scene materials, imported animation masks and many more, trying hard to drill into the exact usage place making your gamedev life easier.

    First project scan caches lots of data, and all significant searches are blazingly fast most of the time.
    Whole 10 GB assets project gets scanned in about 57 secs for first time and takes only ~1.5 sec for any further searches.
    It also allows to look for specific asset(s) usages using RMB context menu of the Project Browser if you don't wish to scan whole project making search much faster.

    New module will be released with next update with price increment, so if you still in doubt, now is a good time to get it

    upload_2017-12-2_3-27-3.png
     
    Last edited: Jan 20, 2018
    docsavage, orb, mcmorry and 2 others like this.
  48. Xtro

    Xtro

    Joined:
    Apr 17, 2013
    Posts:
    608
    Waited this for so long. Can't wait more to try it out :) :)
     
    codestage likes this.
  49. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Psst, 'Maintainer - 1.4.0.0' has been submitted for review :rolleyes:
    * Whispering further * update will raise a price a bit, good time to get it cheaper while it's on review =D
     
  50. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Wee, Maintainer 1.4.0.0 is live at the store!

    References Finder

    The most important part of this update is a brand new module: References Finder (requires Unity 5.6 or newer) which was in closed beta-test for some time.

    Ever wanted know where do you use that huge texture? Or Audio Clip? Or any other asset?
    Here is an answer!

    upload_2018-3-12_21-56-30.png

    With References Finder you are able to:
    • Find references to any assets of any type in scenes, prefabs, another assets, settings, scene settings, literally anywhere in your project =)
    • Walk and inspect the deep dependency tree to figure out whole usage path of any asset
    • Jump to the reference anywhere - in scenes, settings, prefabs, etc.
    • Scan whole project assets references with one button click and explore whole project references in one list with sorting and quick search
    Search is highly optimized and caches lots of data making subsequent searches of same assets blazingly fast!
    You also may exclude any parts of the project from the search with flexible path ignores.

    References Finder in action:

    Other changes

    Alongside with new module, 1.4.0.0 update brings bunch of fixes and improvements to the other modules and code base in general, making it easier to migrate other modules to the new core in future updates.

    Here are few most noticeable:

    Project Cleaner module is out from BETA stage!
    With new core integration, it got huge performance boost, especially on subsequent runs.
    Accuracy was improved, default ignored paths are now added to the filters and may be changed.

    Issues Finder module performance doubled on big scenes and now it's more friendly to the multi-scene setups.

    Common path filtering system got some love too and now it's much more flexible allowing to explicitly specify if you're filtering by pah, directory name, file name, extension and you can make case sensitive filters now.

    Here is a full list of the changes:
    - Required Unity version updated to Unity 5.4.6
    - Project Cleaner:
    - up to x6 performance boost (1st run may be slower tho)
    - much more accurate and safer results
    - improved analysis of some areas
    - exposed default path filters at the Manage Filters... window
    - added more prompts for the destructive actions
    - fixed stopping error at shader fallback lookup in some cases​
    - Issues Finder:
    - huge scenes processing performance doubled
    - default sorting direction changed to Ascending
    - improved support for the multi-scene setup (thx Knubb)
    - fixed extra record for empty Material at ParticleSystem​
    - new References Finder module (requires Unity 5.6+)!
    - gather whole project "referenced at" map in seconds
    - actively caches results making further searches blazingly fast
    - look where specific assets are referenced
    - inspect results with comfort at searchable & sortable tree
    - sort by path, type, size​
    - filtering system improved for better flexibility
    - all path filters now have more options for additional accuracy
    - improved read-only files removal
    - added secret debug mode ;)
    - removed lots of legacy code
    - internal refactoring
    - show target code works faster now if component presents in path
    - lots of other minor improvements
    - other minor fixes

    P.S.: lovely anniversary 100th post in this thread!
     
    Last edited: Mar 13, 2018
    mgmhunt likes this.