├── .gitignore ├── Assets ├── Bookmark4Unity.meta ├── Bookmark4Unity │ ├── CHANGELOG.md │ ├── CHANGELOG.md.meta │ ├── Editor.meta │ ├── Editor │ │ ├── AssetBookmarkGroup.cs │ │ ├── AssetBookmarkGroup.cs.meta │ │ ├── AssetData.cs │ │ ├── AssetData.cs.meta │ │ ├── Assets.meta │ │ ├── Assets │ │ │ ├── Icons.meta │ │ │ ├── Icons │ │ │ │ ├── emptyIcon.png │ │ │ │ ├── emptyIcon.png.meta │ │ │ │ ├── sceneViewBookmarkIconBlack.png │ │ │ │ ├── sceneViewBookmarkIconBlack.png.meta │ │ │ │ ├── sceneViewBookmarkIconWhite.png │ │ │ │ └── sceneViewBookmarkIconWhite.png.meta │ │ │ ├── UXML.meta │ │ │ └── UXML │ │ │ │ ├── AssetBookmarkBtn.uxml │ │ │ │ ├── AssetBookmarkBtn.uxml.meta │ │ │ │ ├── BookmarkGroup.uxml │ │ │ │ ├── BookmarkGroup.uxml.meta │ │ │ │ ├── BookmarkWindow.uss │ │ │ │ ├── BookmarkWindow.uss.meta │ │ │ │ ├── BookmarkWindow.uxml │ │ │ │ ├── BookmarkWindow.uxml.meta │ │ │ │ ├── SceneObjectBookmarkBtn.uxml │ │ │ │ ├── SceneObjectBookmarkBtn.uxml.meta │ │ │ │ ├── SceneViewBookmarkOverlay.uxml │ │ │ │ ├── SceneViewBookmarkOverlay.uxml.meta │ │ │ │ ├── SceneViewBookmarkOverlayButton.uxml │ │ │ │ └── SceneViewBookmarkOverlayButton.uxml.meta │ │ ├── Bookmark4Unity.Editor.asmdef │ │ ├── Bookmark4Unity.Editor.asmdef.meta │ │ ├── Bookmark4UnityWindow.cs │ │ ├── Bookmark4UnityWindow.cs.meta │ │ ├── CrossSceneReference.meta │ │ ├── CrossSceneReference │ │ │ ├── GuidComponentDrawer.cs │ │ │ ├── GuidComponentDrawer.cs.meta │ │ │ ├── GuidReferenceDrawer.cs │ │ │ └── GuidReferenceDrawer.cs.meta │ │ ├── SceneObjectBookmarkGroup.cs │ │ ├── SceneObjectBookmarkGroup.cs.meta │ │ ├── SceneObjectCollectionListView.cs │ │ ├── SceneObjectCollectionListView.cs.meta │ │ ├── SceneObjectListView.cs │ │ ├── SceneObjectListView.cs.meta │ │ ├── SceneViewBookmark.meta │ │ ├── SceneViewBookmark │ │ │ ├── SceneViewBookmark.cs │ │ │ ├── SceneViewBookmark.cs.meta │ │ │ ├── SceneViewBookmarkManager.cs │ │ │ ├── SceneViewBookmarkManager.cs.meta │ │ │ ├── SceneViewBookmarkMenus.cs │ │ │ ├── SceneViewBookmarkMenus.cs.meta │ │ │ ├── SceneViewBookmarkOverlay.cs │ │ │ ├── SceneViewBookmarkOverlay.cs.meta │ │ │ ├── SceneViewBookmarkSearchProvider.cs │ │ │ ├── SceneViewBookmarkSearchProvider.cs.meta │ │ │ ├── SceneViewBookmarkToolbar.cs │ │ │ └── SceneViewBookmarkToolbar.cs.meta │ │ ├── Utility.meta │ │ └── Utility │ │ │ ├── BackgroundColorScope.cs │ │ │ ├── BackgroundColorScope.cs.meta │ │ │ ├── EditorInputDialog.cs │ │ │ ├── EditorInputDialog.cs.meta │ │ │ ├── ScrollViewExtensions.cs │ │ │ └── ScrollViewExtensions.cs.meta │ ├── LICENSE.md │ ├── LICENSE.md.meta │ ├── Runtime.meta │ ├── Runtime │ │ ├── Bookmark4Unity.Runtime.asmdef │ │ ├── Bookmark4Unity.Runtime.asmdef.meta │ │ ├── CrossSceneReference.meta │ │ └── CrossSceneReference │ │ │ ├── GuidComponent.cs │ │ │ ├── GuidComponent.cs.meta │ │ │ ├── GuidManager.cs │ │ │ ├── GuidManager.cs.meta │ │ │ ├── GuidReference.cs │ │ │ └── GuidReference.cs.meta │ ├── Test.meta │ ├── Test │ │ ├── Editor.meta │ │ └── Editor │ │ │ ├── Bookmark4Unity.Test.Editor.asmdef │ │ │ ├── Bookmark4Unity.Test.Editor.asmdef.meta │ │ │ ├── GuidReferenceTests.cs │ │ │ └── GuidReferenceTests.cs.meta │ ├── package.json │ └── package.json.meta ├── Scenes.meta └── Scenes │ ├── SampleScene.unity │ ├── SampleScene.unity.meta │ ├── SampleScene2.unity │ └── SampleScene2.unity.meta ├── Images ├── assets_demo.gif └── scene_view_demo.gif ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── MemorySettings.asset ├── NavMeshAreas.asset ├── PackageManagerSettings.asset ├── Packages │ └── com.unity.testtools.codecoverage │ │ └── Settings.json ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── SceneTemplateSettings.json ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset └── XRSettings.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Uu]ser[Ss]ettings/ 12 | 13 | # MemoryCaptures can get excessive in size. 14 | # They also could contain extremely sensitive data 15 | /[Mm]emoryCaptures/ 16 | 17 | # Asset meta data should only be ignored when the corresponding asset is also ignored 18 | !/[Aa]ssets/**/*.meta 19 | 20 | # Uncomment this line if you wish to ignore the asset store tools plugin 21 | # /[Aa]ssets/AssetStoreTools* 22 | 23 | # Autogenerated Jetbrains Rider plugin 24 | /[Aa]ssets/Plugins/Editor/JetBrains* 25 | 26 | # Visual Studio cache directory 27 | .vs/ 28 | 29 | # Gradle cache directory 30 | .gradle/ 31 | 32 | # Autogenerated VS/MD/Consulo solution and project files 33 | ExportedObj/ 34 | .consulo/ 35 | *.csproj 36 | *.unityproj 37 | *.sln 38 | *.suo 39 | *.tmp 40 | *.user 41 | *.userprefs 42 | *.pidb 43 | *.booproj 44 | *.svd 45 | *.pdb 46 | *.mdb 47 | *.opendb 48 | *.VC.db 49 | 50 | # Unity3D generated meta files 51 | *.pidb.meta 52 | *.pdb.meta 53 | *.mdb.meta 54 | 55 | # Unity3D generated file on crash reports 56 | sysinfo.txt 57 | 58 | # Builds 59 | *.apk 60 | *.aab 61 | *.unitypackage 62 | 63 | # Crashlytics generated file 64 | crashlytics-build.properties 65 | 66 | # Packed Addressables 67 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 68 | 69 | # Temporary auto-generated Android Assets 70 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 71 | /[Aa]ssets/[Ss]treamingAssets/aa/* 72 | 73 | .idea/ 74 | .DS_Store 75 | .vscode/ 76 | mono_crash*.json 77 | -------------------------------------------------------------------------------- /Assets/Bookmark4Unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 912486cab67d0496393cc323d6d78f25 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bookmark4Unity/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # CHANGELOG 2 | 3 | ## v1.1.5 (2025-03-07) 4 | 5 | ### Features 6 | 7 | - Update project version to 6000.0.38f1 8 | 9 | ### Bugfix 10 | 11 | - Fix an issue where the scene view camera bookmarks preview capture not working in newer unity versions. 12 | 13 | ## v1.1.4 (2023-01-19) 14 | 15 | ### Features 16 | 17 | - Added window menu items to access log/folders directly: 18 | - Console log 19 | - Folders 20 | - Data (`Application.dataPath`) 21 | - Persistent data (`Application.persistentDataPath`) 22 | - Streaming assets (`Application.streamingAssetsPath`) 23 | - Temporary cache (`Application.temporaryCachePath`) 24 | 25 | ## v1.1.3 (2023-01-15) 26 | 27 | ### Features 28 | 29 | - Added scene object collection bookmarking. 30 | - When pinning multiple scene objects, you will be asked to either create a collection of scene objects or add scene object bookmarks individually. 31 | - Guid components will not be removed automatically when un-pinning scene object bookmarks to avoid making bookmark collections invalid. 32 | - If you want to remove all guid components in loaded scenes, use `Bookmark4Unity Window → Clear → All Guid Components Attached`. Note that removing guid components will make scene object bookmarks invalid. 33 | 34 | ### Bugfix 35 | 36 | - Fix a typo in scene objects editor dialogue. 37 | 38 | ## v1.1.2 (2023-01-10) 39 | 40 | ### Features 41 | 42 | - Added search providers to support searching bookmarks using quick search window. 43 | - Use `b4u:` for asset/scene object bookmarks. 44 | - Use `svb:` for scene view camera bookmarks. 45 | 46 | ## v1.1.1 (2022-12-26) 47 | 48 | ### Features 49 | 50 | - Re-implemented bookmark window using UIToolkit. 51 | - Asset bookmarks and scene object bookmarks are now separate tabs. 52 | - Asset tab foldout status is remembered, while scene object foldout status updates itself according to currently loaded scenes in the hierarchy. 53 | - Added menu items for clearing bookmarks. 54 | - Assets and objects in the bookmark can now be **draged & droped** anywhere in the editor. 55 | 56 | ### Bugfix 57 | 58 | - Fix an issue introduced with scene view camera bookmarks that causes unity editor to stall when closing. 59 | 60 | ## v1.1.0 (2022-12-22) 61 | 62 | ### Features 63 | 64 | - Add scene view camera bookmarks. 65 | 66 | ### Bugfix 67 | 68 | - Fix `PinSelected` not registering scene objects when invoked through keyboard shortcuts. 69 | - Duplicated assets/scene objects are no longer registered. 70 | 71 | ## v1.0.2 (2022-09-01) 72 | 73 | ### Features 74 | 75 | - Save collections to binary file. 76 | - Load collections from binary file. 77 | 78 | ## v1.0.1 (2022-05-31) 79 | 80 | ### Features 81 | 82 | - Remember the foldout status. 83 | 84 | ### Bugfix 85 | 86 | - Fix runtime error when trying to build the project containing `Bookmark4Unity`. 87 | - Fix the `GuidReference` editor custom drawer error. 88 | 89 | ## v1.0.0 (2022-05-19) 90 | 91 | ### Features 92 | 93 | - Bookmark arbitrary objects in the scene. 94 | - Bookmark arbitrary assets in the project. 95 | -------------------------------------------------------------------------------- /Assets/Bookmark4Unity/CHANGELOG.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b53df7e83ed33411cac62ff00025879c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Bookmark4Unity/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7b32d54d730d483bb6d948194bb9d0a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bookmark4Unity/Editor/AssetBookmarkGroup.cs: -------------------------------------------------------------------------------- 1 | namespace Bookmark4Unity.Editor 2 | { 3 | using System.Collections.Generic; 4 | using UnityEditor; 5 | using UnityEngine; 6 | using UnityEngine.UIElements; 7 | 8 | public class AssetBookmarkGroup 9 | { 10 | public VisualElement Element { get; private set; } 11 | public Foldout Root { get; private set; } 12 | public List Data { get; private set; } 13 | public ListView DataListView { get; private set; } 14 | public const int ItemHeight = 15; 15 | public bool IsEmpty => Data.Count < 1; 16 | public Dictionary> pingActions = new(); 17 | public Dictionary> openActions = new(); 18 | public Dictionary> delActions = new(); 19 | public Dictionary> dragActions = new(); 20 | 21 | 22 | public AssetBookmarkGroup(string groupName, Color borderColor, List data, VisualTreeAsset groupAsset, VisualTreeAsset btnAsset) 23 | { 24 | Element = groupAsset.Instantiate(); 25 | Root = Element.Q("Root"); 26 | Root.style.borderTopColor = borderColor; 27 | Root.style.borderBottomColor = borderColor; 28 | Root.style.borderLeftColor = borderColor; 29 | Root.style.borderRightColor = borderColor; 30 | Root.text = groupName; 31 | Data = data; 32 | 33 | DataListView = new(Data, ItemHeight, () => 34 | { 35 | return btnAsset.Instantiate(); 36 | }, 37 | (item, i) => 38 | { 39 | var icon = item.Q