Search Unity

Maintainer

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

  1. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    Ah, sorry, meant "magnifier" button, like this:
    upload_2021-2-17_13-33-9.png

    It will show up for any items are used elsewhere. If you have no such icon against child item - no references for that item were found.
     
  2. umair21

    umair21

    Joined:
    Mar 4, 2016
    Posts:
    141
    Yes but clicking this button initiates searching process if we click on the magnifier of specific item which I don't want because either it'll clear your list or add it somewhere at the bottom. Do you have that version with depth tree feature?
    I'll share my invoice number with you if you can provide a version with depth tree feature. :)
     
  3. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    It will not start a new search and just jump to that item if it's already exist in the list (which will be a case if you make all assets search).

    It will not clear a list if you deactivate "Clear previous results" toggle.

    Yes, it's outdated one though and may work incorrectly on actual Unity versions. Anyways feel free to drop me your invoice number in PM and I'll send you that version.
     
  4. umair21

    umair21

    Joined:
    Mar 4, 2016
    Posts:
    141
    Yes this helped. I didn't know about this. Thank you.

    Sent you my invoice number here in DM. :)
     
  5. umair21

    umair21

    Joined:
    Mar 4, 2016
    Posts:
    141
    One small feature request:

    Addition of Selection history buttons for Next selection (if we aren't on the current and end selected object) and Previous selection (if we are somewhere in between selection history list).
    E.g. I searched for "All Assets" references. Now I can easily click on Magnifier icon to jump to the child object which is somewhere in this massive list but there's no way for me to jump back to the previous object I was looking at before I clicked magnifier button. Need this feature because sometimes one object have multiple references so to easily go around the list, I think this will be a helpful feature. I don't know if something else similar to this feature is already in here in maintainer but please have a look at it if this is helpful in any way possible. Tried using CTRL+Z (Because this works in Unity selection) but didn't work. Even addition of CTRL+Z would be enough.
     
    codestage likes this.
  6. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    Thanks, Maintainer version with recursive tree sent.

    Looks helpful, thank you for the request, added to the internal tasks tracker!
     
    umair21 likes this.
  7. Telhurin

    Telhurin

    Joined:
    Feb 8, 2015
    Posts:
    6
    Hey! First of all - great job with the plugin ^^. The Maintainer helped a ton with organizing the project.

    I've encountered a small problem: I'm not able to find references to the Shader Graph VFX Asset, that are referenced inside VFX Graph. Version 1.10.0.

     
    codestage likes this.
  8. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    Hey @Telhurin, thank you, will take a look and see what can be done here!
     
    Telhurin likes this.
  9. umair21

    umair21

    Joined:
    Mar 4, 2016
    Posts:
    141
    Hi there, Just wanted to ask 2 things:

    1. When we are getting "Replace/Remove references within Maintainer" feature?
    2. When are we getting "Selection history" feature (The one I asked for in previous comments. :) ).

    Any update on progress please? :)

    Thanks for this awesome time saving tool.
     
  10. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    Hey @umair21 ,

    Currently I'm working on next ACTk update and going to switch back to the Maintainer this summer to implement something from the internal task tracker according to the priorities (most wanted features and internals enhancements are going first), so I have no ETA for those two at this moment.

    Anyways I'll post important progress news here and on twitter to let you know more about what's coming in new updates.
     
    umair21 likes this.
  11. umair21

    umair21

    Joined:
    Mar 4, 2016
    Posts:
    141
    Hi @codestage
    I am facing these 2 weird problems with my references.

    1: I searched for references of one of my footstep audio clip. Maintainer gave me it's references as expected. That audio clip was being referenced from a script call FootSteps.cs. I then opened that script and commented out all of it's code because I didn't need it. Now that means there shouldn't be any more references of this clip, right? But that didn't happen, I still getting reference for this clip on that same script which doesn't contain this audio anymore but Maintainer is still opening that script while collapsing all others which means it's getting old references. Do I really need to remove script from scene or is there any other solution for this? I don't want to remove script from scene for now, what could be reason or solution for this?

    2: I have a texture in my project which was previously being referenced from one my scenes. After remove all it's instances from my scenes, I getting 2 warnings about Resaving my scene and check for any missing scripts or prefabs. There's no missing script or prefab. Why isn't Maintainer updating references track once something is removed from my project.
     
  12. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    Hey @umair21 ,

    1. Currently, this is expected behavior since Maintainer operates on the assets level and relies to the Unity's dependencies API, which in some cases will return references even if they are already does not exist until you re-import or resave related assets.

    Anyways I'll try reproducing your specific case and will see if something could be done here from my side, added this case to the internal bugtracker, thanks!

    2. Not sure I got it =\ Do you save made changes and on new Maintainer scan get those warnings from Maintainer? In any case, as I mentioned earlier, Maintainer relies to the AssetDatabase dependences and some references may still exist while actually nothing is referenced.
    You can check if your texture is referenced from any scenes in the AssetDatabase by right-clicking scene in project browser and selecting "Select Dependencies" and checking if that texture is get selected.
     
  13. umair21

    umair21

    Joined:
    Mar 4, 2016
    Posts:
    141
    Hi @codestage , is this possible for you to add a feature of Maintainer in which it could get reference changes on runtime? As far as I know, if we try to search for object whose references changes at runtime somehow, maintainer doesn't show those runtime reference changes e.g. if we add reference of one object from one script to another, we don't get that runtime reference in maintainer. Anything that you can do for this? Is this even possible?
     
  14. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    Hey @umair21 ,

    Maintainer does uses AssetDatabase to find cross-assets references.
    Currently it will not find assets which were referenced at runtime (e.g. from scripting) since there will be no such references in target scene or prefab on the AssetDatabase level.

    However, it will find any Hierarchy object references at Play Mode without problem, here, for example, "cam" field gets assigned at runtime but still gets found by Maintainer in Play Mode:
    upload_2021-5-30_19-9-31.png

    Code (CSharp):
    1. namespace CodeStage.Maintainer.Tests
    2. {
    3.     public class DynamicReference : MonoBehaviour
    4.     {
    5.         public Camera cam;
    6.  
    7.         private void Awake()
    8.         {
    9.             cam = Camera.main;
    10.         }
    11.     }
    12. }
     

    Attached Files:

  15. umair21

    umair21

    Joined:
    Mar 4, 2016
    Posts:
    141
    Yeah that's what I was facing problem with. I had 2 enemy characters in my scene which gets enable on start of that scene. One script named as StoryManager.cs finds these characters by FindObjectOfType method and assign them into a list of type Enemy. When I tried getting references of these enemies, maintainer only returned references from scripts that were already attached to those characters like Animator, Shooting scripts etc but it didn't show any reference from StoryManager script. As you tried with camera, same is the case with my enemies then how come your references are being shown and not mine?
     
  16. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    @umair21 I'm not sure why it does not work for you, maybe real example could help shed some light here.. also, just in case, of course reference should be serializable and visible in inspector since Maintainer checks serialized properties when looking for hierarchy references.
     
  17. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    Maintainer 1.10.2 is live now!

    While I'm working hard on new Anti-Cheat Toolkit upgrade, I'm releasing few tiny updates to Maintainer with important bugfixes.

    [1.10.2] - 2021-06-17

    Changed

    - Make References Finder take embedded packages into account (thx Mr. Pink)

    Fixed
    - Fix subfolders processing at References Finder

    [1.10.1] - 2021-06-16

    Changed
    - Switch from plain text changelog to markdown-driven format

    Fixed
    - Fix References Finder picked more source assets then looking in folders in some cases
    - Fix asset selection on reveal when using two-column Project Browser

    Thanks everyone who leaves reviews, reporting bugs and provides other feedback!

    Stay tuned fore more and feel free to join Discord server.
     
  18. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    Maintainer 1.11.0 is live now!

    This time, Issues Finder missing reference search got some love ^^

    [1.11.0] - 2021-06-23

    Added

    Issues Finder
    • improve generic missing references lookup in file assets
    • add MonoScript missing default properties lookup support
    • add Materials missing texture references lookup support (thx Makaka Games)
    Removed
    - Remove additional path restrictions when dropping assets to path filters

    Fixed
    - Issues Finder: fix minor UI issues
     
    makaka-org likes this.
  19. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    502
    I've been using the Maintainer since 2016 year. It integrated into my work pipeline to catch Garbage & Missing Stuff at the stages when something doesn't work or before publishing Apps or Unity Assets.

    Highly Recommend.

    P.S. Support is very responsive. "Materials missing texture references lookup support" in the last release was added at my request. Thank you.
     
    codestage likes this.
  20. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    Maintainer 1.12.0 is live in the store!

    This time, few filtering UX improvements were made, see changelog for details:

    [1.12.0] - 2021-06-28

    Added
    • Project Cleaner:
    • Add new quick way to treat all scenes in project as used (thx Makaka Games) 2021-06-27_23-07-32.png
    • Add new context menu action for found unused scene assets to treat them as used 2021-06-27_23-07-48.png
    Changed
    • Improve errors reporting and exceptions handling
    • Project Cleaner: improve used scenes filtering UX
    Fixed
    • Issues Finder: fix minor issues at missing references algorithm

    Another good news: Maintainer is 50% off until Jul 6 and every sold copy will get upgrade to the Maintainer 2.0 for free!

    AS-SHSS-Week02-468x60-Display.jpg
     
    makaka-org likes this.
  21. umair21

    umair21

    Joined:
    Mar 4, 2016
    Posts:
    141
    Are we going to get Maintainer 2.0 as an upgrade? By WE I mean us who already purchased Maintainer?
     
  22. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    502
    Oh! When you will release 2.0 and what will be here?
     
  23. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    This is to be announced but yes, Maintainer 2.0 will be released as a paid upgrade with good discount for all existing customers and 1-year free grace period.

    Currently there is no exact ETA but I hope to reach this point at the Q1'22 or earlier.

    Upgrade contents to be announced, stay tuned for more news (will post them here, in discord, twitter and facebook)!
     
    makaka-org likes this.
  24. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    Hey everyone,

    Just a small status update: I'm currently in the middle of prepping one of the last free maintenance 1.3.0 release and starting implementing new features for Maintainer v2 major upgrade.

    Today I'm excited to announce one of the upcoming features in Maintainer v2: extendable Issues Finder!

    upload_2021-9-17_19-45-59.png
    It's currently in WIP stage and APIs could change, screenshot was made just to demonstrate the concept.

    This will allow you to extend built-in detectors collection with your own issue detectors using flexible API framework.

    Maintainer v2 is going to get more exciting features across all modules and will get through the Beta Test with vouchers giveaway, stay tuned!
     
  25. pistoleta

    pistoleta

    Joined:
    Sep 14, 2017
    Posts:
    345
    Uhm! I have an own Validator that goes across all my prefabs and SO's to check if their binded objects are valid... I wonder if this system could replace my ugly script

    Looking forward to see it!
     
    codestage likes this.
  26. Xtro

    Xtro

    Joined:
    Apr 17, 2013
    Posts:
    448
    Maintainer is a LIFE SAVER. I use it with love and respect. I will buy V2 the first day it's released.

    Thank you for the great work.
     
    codestage likes this.
  27. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    Hey everyone, today is a news day!

    Maintainer 2 Major Upgrade WIP update

    Extendable Issues Finder is at the final internal testing phase: all cogs are running and whole module was switched to the new extendable architecture!

    upload_2021-9-30_12-0-2.png

    This also leads to the fully dynamic list of the detectors.

    For example, here is a Issue Detectors list built from both internal detectors which now do leverage new architecture and from one external detector:

    IssuesFinder_Steps_Bevel.png

    BTW did you spot new component issue?


    You'll be able to add your own detectors and they will appear there as well so you could easily enable or disable them.
    In order to add your own detector, you just derive from IssueDetector and implement one of the interfaces to specify when to trigger your detector. And that's all you need to do: it will be automatically integrated into the Issues Finder to appear at the detectors list.

    For example, here is a code for the "Custom problem" detector:
    Code (CSharp):
    1.  
    2. internal class ExternalIssueDetector : IssueDetector, IGameObjectBeginIssueDetector
    3. {
    4.     public override DetectorInfo Info { get { return
    5.         DetectorInfo.From(
    6.             IssueGroup.Other,
    7.             DetectorKind.Defect,
    8.             IssueSeverity.Warning,
    9.             "Custom problem (⌐■_■)",
    10.             "External issue detector example: checks 'ValidationTarget' Game Object hideFlags to be HideFlags.NotEditable.");
    11.     }}
    12.     public void GameObjectBegin(DetectorResults results, GameObjectLocation location)
    13.     {
    14.         if (location.GameObject.name != "ValidationTarget")
    15.             return;
    16.         if (location.GameObject.hideFlags == HideFlags.NotEditable)
    17.             return;
    18.         var issue = GameObjectIssueRecord.ForGameObject(this, IssueKind.Other, location);
    19.         issue.BodyPostfix = "Incorrect hideFlags: " + location.GameObject.hideFlags + " while " + HideFlags.NotEditable + " expected!";
    20.         results.Add(issue);
    21.     }
    22. }
    23.  
    Please note this example uses APIs which may change closer to the Maintainer 2 Beta launch, this is just to illustrate the concept.

    Maintainer 1.13.0

    This version is going to be released soonish (expecting to arrive next week), bringing few important fixes and improvements. Details will be posted as soon as update will hit the store.

    This will be last free update for the Maintainer (could be followed by few minor bugfix patches).
    I'm going to deprecate Maintainer v1 as soon as v2 will get out but it's going to be stable and will support Unity versions up to 2022.1 thus you'll be safe for some time with it if you'll decide to stay on that version.
     
    Last edited: Sep 30, 2021
  28. Xtro

    Xtro

    Joined:
    Apr 17, 2013
    Posts:
    448
    :clap: :clap: :clap:
     
  29. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,603
    Hey everyone,

    Glad to let you know Maintainer 1.13.0 is out now at the Asset Store!
    This update brings a plenty of fixes and improvements across all modules, here are some highlights:

    Add Filters count to the filtering tabs titles

    2021-09-15_13-49-50.png

    It's now easier to quickly spot which filters are set.

    Add automatic IDependenciesParser implementations integration in Unity 2019.2+

    It's now easier to integrate your own Dependencies Parsers: Maintainer will automatically find and register your extensions, all you need to do is just inherit from Dependencies Parser base class or implement IDependenciesParser and you're good to go. Here is a simple example:

    Code (CSharp):
    1. namespace Tests.Extension
    2. {
    3.     using CodeStage.Maintainer.Core.Dependencies;
    4.     using System.IO;
    5.     using UnityEngine;
    6.  
    7.     public class ExternalDependencyParser : DependenciesParser
    8.     {
    9.         public override Type Type { get { return typeof(CustomAssetType); } }
    10.  
    11.         public override IList<string> GetDependenciesGUIDs(AssetInfo asset)
    12.         {
    13.             var referencePath = Path.ChangeExtension(asset.Path, "mat");
    14.             var referenceGuid = AssetDatabase.AssetPathToGUID(referencePath);
    15.  
    16.             if (!string.IsNullOrEmpty(referenceGuid))
    17.                 return new []{referenceGuid};
    18.            
    19.             Debug.LogError("Couldn't find reference from ExternalDependencyParser!");
    20.             return null;
    21.         }
    22.     }
    23.    
    24.     [CreateAssetMenu(fileName = "CustomAsset", menuName = "CustomAsset", order = 1)]
    25.     public class CustomAssetType : ScriptableObject
    26.     {
    27.        
    28.     }
    29. }
    Custom Dependencies Parsers are helpful in case you're having specific dependencies which are not tracked by AssetDatabase.GetDependencies() (i.e. if you're using indirect scripted dependencies) but you still would like to track them in References Finder and take them into account at the Project Cleaner modules.

    Improvements to the Issues search in opened scenes

    2021-09-13_20-21-47.png

    2021-09-14_12-31-12.png

    Now it's easier to quickly check opened scenes for issues.
    Also it's now also possible to look for issues at the unsaved Untitled scene without save prompt.

    Improve Project Cleaner ignores context menu UX

    2021-09-13_19-35-00.png

    Now it's easier to ignore topmost Assets/* folder of any found asset.

    Other highlights

    There are lots of other fixes and improvements here and there, read full release notes below to know more about all other changes in this update.

    And stay tuned for the news about upcoming Maintainer 2: I'll keep posting WIP highlights and will start a Beta Test with voucher sweepstakes closer to the release!

    [1.13.0] - 2021-10-04

    Added
    • Add automatic IDependenciesParser implementations integration in Unity 2019.2+
    • Add Filters count to the filtering tabs titles
    • Add Tools > Code Stage > Maintainer > Find Issues In Opened Scenes along with new StartSearchInOpenedScenes API
    • Add Game Object > Maintainer > Find Issues In Opened Scenes menu
    • Add MaintainerExtension base class for extensions
    • Add DependenciesParser base class for dependency parsing extensions
    • Add items count to the Issues Finder and Project Cleaner reports
    • Add new support contact, let's chat at Discord!
    Changed
    • Improve Project Cleaner ignores context menu UX
    • Allow searching issues at the unsaved Untitled scene
    • Previous search results do not clear up anymore if new search was cancelled
    • Improve Unity 2022.1 compatibility
    • Make AssetInfo class public
    • Change IDependenciesParser.GetDependenciesGUIDs signature to allow more flexibility:
      • accept AssetInfo instance
      • return IList
    • Utilize IDependenciesParser for settings dependencies processing
    Deprecated
    • Starting from Unity 2019.2+, deprecate redundant AssetDependenciesSearcher.AddExternalDependenciesParsers API
    • Deprecate legacy .NET 3.5 (to be removed in next major upgrade in favor of newer .NET version)
    Fixed
    • Issues Finder:
      • Fix some Game Objects still could be analyzed with Game Objects option disabled
      • Fix missing components reveal didn't properly fold inspectors
      • Fix Game Object context menus were active for non-GameObject selection
      • Fix checking scenes and Game Objects with disabled corresponding options regression
      • Fix rare case with duplicate issues in prefab variants without overrides
    • References Finder:
      • Fix search terms were not reset after Unity restart causing a confusion
      • Fix rendering settings path in Exact References at Unity 2020.1+
    • Fix possibility of rare filtering issues when having "Assets" in the project path
    • Fix fallback fonts were not tracked properly leading to inclusion at the Project Cleaner
    • Fix reveal in Prefab Variants didn't set proper Selection
    • Fix window notification could not show up after window activation
    • Fix minor UI issues
    • Fix other minor issues
     
    tosiabunio likes this.
unityunity