Hi all! I created a simple script for the inspector that allows you to navigate backwards and forwards through selected objects in either the scene or project view.
It is battle tested and extremely robust:
It automatically filters out deleted objects if you try to navigate to one.
Hard limit on maximum selected objects in one operation = 100 for performance reasons
Back and forward buttons enable/disable if the operation would be valid/invalid
Reset button should you like to start a new navigation session
I’ve kept faithful to the design of this script in such a way that it mirrors most applications. If you were to navigate backwards a few objects and then select a new object, that new object will become the top of the list as would happen in chrome or explorer, etc.
I find that placing it on top of my inspector makes it so that I can access it regardless of if I have something selected or not.
NB: If you reload your scripting environment, the navigation session is reset. This is a unity thing and I may release an update in the future to counter this.
Caustic Navigator © 2024 by Shawn Fox is licensed under Attribution-NoDerivatives 4.0 International
NB: Attribution not required. However, please tell everyone about the other cool stuff I make!
Thanks and happy editing!
9580945–1356847–Navigator.cs (4.6 KB)
2 Likes
These statements conflict each other, are vague, and actually prevent the legal use of this script!
You say “don’t distribute elsewhere” - that simply means nothing else but: “do not distribute”, period. Regardless of how or in what form. So one cannot even legally download (read: “copy”) the attached script to begin with. 
Please use one of the common licenses available, like MIT License, and add it to the top of the script or as separate file so the legal terms are clear.
Thank you. Put a license on it.
Thanks, just what I was looking for,
However there seems to be a redundant reference to using RotaryHeart.Lib.SerializableDictionaryPro which I commented out.
Thank you for sharing this useful Navigator script! 
I found a small issue: after clicking the RESET button, the current Inspector object is not recorded in the history, so the back/forward buttons become disabled until you select another object.
To fix this, I added a few lines in the QCOOCQOQCO() method:
// Added these lines to record the current selection after reset
if (Selection.objects != null && Selection.objects.Length > 0)
{
QCCO.Add(Selection.objects);
QQCO = QCCO.Count - 1;
}
Repaint();
Now after resetting, the current Inspector object is properly added to the history, and back/forward navigation works immediately again.
Hope this helps others too!