Search Unity

Build Report Tool - Track files in your project that need slimming down!

Discussion in 'Assets and Asset Store' started by AnomalusUndrdog, Apr 14, 2013.

?

How much would you be willing to pay for this?

Poll closed Oct 26, 2015.
  1. $2

    23.5%
  2. $5

    50.0%
  3. $10

    26.5%
  1. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Hi guys. I made this tool to let you see a breakdown of assets size after you build your project. We use this to see which assets need to be worked on when we're targeting a particular build size (when making mobile games). In this way, it's easy to find out which of your files are taking up too much space.

    It really just parses the data from the Editor logfile. I'm surprised UT hasn't made a built-in front-end for it yet (or is there already?)

    Asset Store link: https://assetstore.unity.com/packages/tools/utilities/build-report-tool-8162











    Unused Assets: See which files are not included in your build. Perhaps you have some files you don't use anymore. Perhaps you want to delete some auto-generated materials but you want to be sure to delete the ones unused.





    File filters: See the list segregated by type (textures, models, scripts, etc.) or by folder name (all assets in a "Standard Assets" folder, all in an "Editor" folder, etc.) The filters are user-configurable via an XML file.









    This plugin is priced at $10 only! Price will increase as I add more features so get it now if you plan on getting it at all!

    Asset Store link: https://assetstore.unity.com/packages/tools/utilities/build-report-tool-8162
     
    Last edited: Nov 7, 2018
    Mauri likes this.
  2. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Looks pretty interesting :)
     
  3. Kencho

    Kencho

    Joined:
    Dec 26, 2011
    Posts:
    14
    It's certainly looking good, and quite useful. Didn't even know the log was releasing that information.
     
  4. theSoenke

    theSoenke

    Joined:
    Dec 4, 2012
    Posts:
    106
    Looks very useful. Please publish it
     
  5. Ronin-Ra

    Ronin-Ra

    Joined:
    Jul 7, 2012
    Posts:
    42
    Awesome tool! Please do publish it :D
     
  6. JamesArndt

    JamesArndt

    Joined:
    Dec 1, 2009
    Posts:
    2,932
    Mega +1 on putting this one on the Asset Store or wherever you plan on distributing it! Will this be a sold asset or free?
     
  7. jeffweber

    jeffweber

    Joined:
    Dec 17, 2009
    Posts:
    616
    Yes, I could use that.
     
  8. DavidJNels

    DavidJNels

    Joined:
    Aug 10, 2012
    Posts:
    34
    Yes, please publish this ASAP! :)
     
  9. Toad

    Toad

    Joined:
    Aug 14, 2010
    Posts:
    298
    Looks good!
     
  10. Alex-Chouls

    Alex-Chouls

    Joined:
    Mar 24, 2009
    Posts:
    2,663
    Yes! Looks very useful!
     
  11. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Hey guys, so it seems quite a handful of people want this so I just submitted it to the Asset Store.

    I would give it away for free, but I can't ignore the fact that money is a bit tight right now being in a startup company, so I'm attaching a little cost to it, just $2. I'll see how it goes from there.

    It's going to be called "Build Report Tool".
     
    Last edited: Apr 14, 2013
  12. kenshin

    kenshin

    Joined:
    Apr 21, 2010
    Posts:
    940
    Great!
     
  13. nukeD

    nukeD

    Joined:
    Feb 12, 2009
    Posts:
    411
    Wow a very useful tool!!!

    Thank you
     
  14. fffMalzbier

    fffMalzbier

    Joined:
    Jun 14, 2011
    Posts:
    3,276
    Looks very useful for getting under the 50MB mark for the network distribution for iOS.
     
  15. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Adding a cost to it is no problem at all since you spend time to make it. That said, I am going to buy it as soon as. Looks great :)
     
  16. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Hi guys, just a bump for updates:

    The plugin is now submitted to the Asset Store and is pending review. If you want it now though, you can buy it directly from me for $5 (via PayPal). Consider it a beta test purchase. PM me for details.

    Also, now works with the dark skin of Pro:

     
  17. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Just a bump: I added a poll to gauge how much I should sell the plugin. If you're planning on buying this then please vote!
     
    Last edited: Apr 16, 2013
  18. freaksed

    freaksed

    Joined:
    Sep 15, 2010
    Posts:
    22
    If we buy it straight from you early, will it be unlocked on the asset store for us as well?
     
  19. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Not sure if that's possible. I'll have to ask the Asset Store team for that.
     
  20. emergki

    emergki

    Joined:
    Oct 15, 2007
    Posts:
    422
    I'll buy this for sure!!!
     
  21. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Errr.. how come the thread title doesn't change when I try to edit it? I want to give this a "[RELEASED]" tag on the title that you guys usually put.
     
  22. Lypheus

    Lypheus

    Joined:
    Apr 16, 2010
    Posts:
    664
    Simple and useful! I did the same thing with Unity Logger :) - i'll buy it for sure!
     
  23. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Hi guys. What do you think could use some improvement?


    I'm thinking the DLLs displayed should show their file sizes too.


    Someone also suggested an option for the asset list to be segregated by category (meshes, textures, sounds, etc.)


    Another suggestion was a list to show which assets are NOT USED in your build. Say, you want to find out what you're not using anymore. But if your project is so big, it's a hassle to look through each one from your Project window.


    All those mentioned I think have a good chance of coming in as version upgrades.


    If you guys come up with other ideas, let's hear it!
     
  24. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Hi freaksed. I just got back from the Asset Store review team. They currently don't allow such a thing. But I guess that's not a problem for you since it's out in the Asset Store already :p
     
  25. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Sneak peek on my improvements: file sizes on the DLLs. Separated DLLs of your compiled scripts versus included DLLs due to dependencies.

     
  26. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Hi guys. Just a quick note:

    The intro price will conclude sometime this week (depending on when my version update gets approved by the Asset Store review team). The price will change from $2 to $5.
     
    Last edited: Apr 23, 2013
  27. kork

    kork

    Joined:
    Jul 14, 2009
    Posts:
    280
    Really great asset, I love it. I wrote a small uTomate action that fires up the build report window automatically after the player has been built. Saves me two clicks everytime. If you want the action - there is a unity package that you can download.
     
  28. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Hi Kork,

    Thanks for that. I was actually trying to automate showing up the window every time you build (via PostProcessBuildAttribute) but I was having errors with it. I'll see if I can make it work this time.
     
  29. ronan-thibaudau

    ronan-thibaudau

    Joined:
    Jun 29, 2012
    Posts:
    1,722
    voted 10, interested.
     
  30. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Upcoming version update:

    File filters. This means you can view the asset list per category (textures, models, prefabs, scripts, etc.). Furthermore you can filter by folder name. This means you can have a filter for "Standard Assets" showing assets that are in any "Standard Assets" folder.

    Unused Asset List. Shows assets that are not used. This is meant for finding out which files you don't use anymore, or for auto-generated files that you don't use that you'd like to remove.

     
  31. SevenBits

    SevenBits

    Joined:
    Dec 26, 2011
    Posts:
    1,953
    Looks cool. Surprised no one has done this sort of thing yet.
     
  32. liszto

    liszto

    Joined:
    Dec 22, 2011
    Posts:
    135
    The update version is released on the store ?
     
  33. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Not yet. Hopefully sometime this week depending on when it gets approved by the Asset Store review team.
     
  34. liszto

    liszto

    Joined:
    Dec 22, 2011
    Posts:
    135
    Ok. I hope it gonna be this week :D. Really nice work !

    Btw I've got something strange with your last version, I get this error :

    I build it for the current target with our personnal builder and this doesn't happen before the dll up version. If you have an idea on this ?
     
  35. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Is that with version 1.3 or the lastest (1.4)? Try version 1.4 (it was just released a few hours ago).

    If it still doesn't work, do a build that has that error, then email me your Editor.log file. I sent you a PM, I mentioned my email address there.

    Your Editor.log should be in
    ~/Library/Logs/Unity/Editor.log

    If you have a custom builder that could be the problem, though I can easily fix the Build Report Tool to take that into account. I just need your Editor.log to test it.
     
    Last edited: Apr 30, 2013
  36. kork

    kork

    Joined:
    Jul 14, 2009
    Posts:
    280
    Got the latest version, nice upgrade :) How about making the categories into a dropdown instead of tabs? This would save a lot of screen space, especially when having this docked somewhere. Oh and while I am at my wishlist:

    * Could you make popping up the window after a build configurable?
    * Do you see any chances of supporting more than one build? I usually build players for three platforms in a row and it would be nice if I could see e.g. the stats for the last three players.
     
    Last edited: Apr 30, 2013
  37. liszto

    liszto

    Joined:
    Dec 22, 2011
    Posts:
    135
    The problem is always here even with your last version (1.4). I send you my Editor.log in a PM.

    Other thing that can be usefull, I used svn and all svn files are present in the unused assets ( I think you can avoid their scan :D ). Cause the interface get lag due to the amount of files (around 2200 with all my svn files ^^).
     
  38. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Hi guys,

    Ok, I'll work on your requests on my next update.
     
  39. shallwaycn

    shallwaycn

    Joined:
    Apr 3, 2012
    Posts:
    202
    bug report:

    in BuildReport.cs line 231:

    foreach (UnityEngine.Object o in deps)
    {
    .......
    }

    the Object o might be null in my project(Iphone build), i don't know why, might be the unirt bug.

    but after i fixed this by just ignore the null o, everything seems fine.

    anywaygreat tool, keep it on!
     
  40. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Thanks for that. I added a null check. That is quite odd though. All I'm doing is requesting Unity to find the dependencies of the selected scene. It shouldn't return null unless maybe one of the project files are corrupted or otherwise unreadable.
     
  41. TopThreat

    TopThreat

    Joined:
    Aug 7, 2012
    Posts:
    136
    I got the same error, created a build with one of my scenes removed and it worked. Added the scene back into the build and it worked like a charm. No more error and did not change code.
     
    Last edited: May 1, 2013
  42. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    About the null? Simply add `o != null ` before the if check. This:

    Code (csharp):
    1.  
    2. if (PrefabUtility.GetPrefabType(o) == PrefabType.Prefab)
    3.  
    becomes this:

    Code (csharp):
    1.  
    2. if (o != null  PrefabUtility.GetPrefabType(o) == PrefabType.Prefab)
    3.  
     
  43. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    v1.5, doing a test on pc build, not working. It says can't find a part of the path "C:\Unity'Editor\Editor.log", why does it hardcoded to that path?
     
  44. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Hi imtrobin, that's not hardcoded. All it does is get the value of the environment variable "LOCALAPPDATA" and use it (http://docs.unity3d.com/Documentation/Manual/LogFiles.html).

    It could be something wrong happened along the way. One guess is maybe there are some unicode characters in the username that may mess up the code, or the "LOCALAPPDATA" variable itself is pointing in the wrong location.

    The easiest solution I can see is to let you have manual override on how the Build Report Tool gets the Editor.log path. I'll work on that in the next update.
     
  45. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Option to manually specify which Editor.log to use (or any text file) will be up on the next version update. Should go live sometime this week.

    Btw, last update added a feature to save build reports to XML files. Store build reports for future reference!
     
  46. liszto

    liszto

    Joined:
    Dec 22, 2011
    Posts:
    135
    There is a conflict with one of my enum in my project with your tools, I solve it with a patch in your code and I think you can fix it from your side ;).

    The problem is in BuildReportUtils cause you use "Environnement.OSVersion.Platform" and not "System.Environment.OSVersion.Platform" so if someone in its project use an enum named Environnement it will have an error.

    Other thing for you that can be a good thing if you can. In your filter list actually you can filter only one type at time. It could be really great to allow multiple filters for example in your dropdown box allow user to click on Material Shader for example ;).

    Cya to your next update ! ;)
     
  47. kork

    kork

    Joined:
    Jul 14, 2009
    Posts:
    280
    It's generally a good idea to prefix classes in assets you put on the asset store, maybe you could use this opportunity to rename all classes so they have a prefix like BWEnvironment (BW for BuildWindow).
     
  48. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553

    Hi liszto, I'll work on that in the next update.

    About multiple filters, since it's a dropdown box, I'm afraid it's not possible to select multiple ones.

    What you can do however, is to edit what filters are used. So you can, in fact, combine Materials and Shaders into one category. Find the file named "FileFiltersUsed.cs" and edit it.

    There's a part there that looks like this:
    Code (csharp):
    1.  
    2.             new FileFilters("Materials",
    3.                 new string[]{
    4.                 ".mat",
    5.                 ".sbsar",
    6.                 ".cubemap",
    7.                 ".flare",
    8.             }),
    9.             new FileFilters("Shaders",
    10.                 new string[]{
    11.                 ".shader",
    12.                 ".compute",
    13.                 ".cginc",
    14.             }),
    15.  
    Which you can change to this:
    Code (csharp):
    1.  
    2.             new FileFilters("Materials  Shaders",
    3.                 new string[]{
    4.                 ".mat",
    5.                 ".sbsar",
    6.                 ".cubemap",
    7.                 ".flare",
    8.                 ".shader",
    9.                 ".compute",
    10.                 ".cginc",
    11.             }),
    12.  
    Admittedly that's a hack. If there is ever a version update, your edits to FileFiltersUsed.cs would get overwritten. It's better if such data is in, say, an XML config file perhaps.

    I'll also work on that in the next update.



    For liszto's case, the only thing I could really do on my end is to explicitly specify the "System" namespace.

    I will add a BuildReportTool namespace though. I cannot however, add a namespace to the BuildReportWindow class, as Unity 3.x relies on the filename to be the same as the class name (and without a namespace).

    The changes will be added on the next update.
     
  49. liszto

    liszto

    Joined:
    Dec 22, 2011
    Posts:
    135
    Thanks for the new things in the next update :). I used svn in my project and your tools is versionned so even if you update it, I can merge it with the current version so my filters will be conserved.

    I(ve got one more question, with an Android build on Unity 3.5 I see something called Compressed build size but with Unity 4 this isn't displayed it's normal ?
     
  50. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    That sounds like a bug. Unfortunately I don't have an Android license for my installation of Unity 4 (my mobile licenses are only for Unity 3).

    So I can't diagnose the problem.

    EDIT: I found out about Fishing Game Jam and they're giving away Pro trials so I nabbed one (I'll be joining anyway).

    So I tried out building on Android in Unity 4 and nothing seems to be out of the ordinary, except for the fact that there are times that the Build Report Window displays blank info after building. It's a bug that I believe I've fixed now. That'll come out together in the next update.
     
    Last edited: May 9, 2013