├── .gitignore ├── AssetBookmarker-v2.2.unitypackage ├── Assets ├── AssetBookmarker.meta └── AssetBookmarker │ ├── CHANGELOG.md │ ├── CHANGELOG.md.meta │ ├── Data.meta │ ├── Data │ ├── Hierarchy.meta │ ├── Hierarchy │ │ ├── BookmarkData.asset │ │ └── BookmarkData.asset.meta │ ├── Project.meta │ └── Project │ │ ├── BookmarkData.asset │ │ └── BookmarkData.asset.meta │ ├── Editor.meta │ ├── Editor │ ├── Core.meta │ ├── Core │ │ ├── Editor.meta │ │ └── Editor │ │ │ ├── BookmarkWindowBase.cs │ │ │ ├── BookmarkWindowBase.cs.meta │ │ │ ├── CustomUI.cs │ │ │ ├── CustomUI.cs.meta │ │ │ ├── GenericDataGenerator.cs │ │ │ ├── GenericDataGenerator.cs.meta │ │ │ ├── MenuConfig.cs │ │ │ ├── MenuConfig.cs.meta │ │ │ ├── PackageConfig.cs │ │ │ └── PackageConfig.cs.meta │ ├── Hierarchy.meta │ ├── Hierarchy │ │ ├── Editor.meta │ │ └── Editor │ │ │ ├── GUI.meta │ │ │ ├── GUI │ │ │ ├── HierarchyBookmarkWindow.cs │ │ │ └── HierarchyBookmarkWindow.cs.meta │ │ │ ├── Model.meta │ │ │ ├── Model │ │ │ ├── HierarchyBookmarkData.cs │ │ │ ├── HierarchyBookmarkData.cs.meta │ │ │ ├── SearchInfo.cs │ │ │ └── SearchInfo.cs.meta │ │ │ ├── Utility.meta │ │ │ └── Utility │ │ │ ├── DataLoader.cs │ │ │ ├── DataLoader.cs.meta │ │ │ ├── SceneHierarchyAccessor.cs │ │ │ └── SceneHierarchyAccessor.cs.meta │ ├── Project.meta │ ├── Project │ │ ├── Editor.meta │ │ └── Editor │ │ │ ├── GUI.meta │ │ │ ├── GUI │ │ │ ├── ProjectBookmarkWindow.cs │ │ │ └── ProjectBookmarkWindow.cs.meta │ │ │ ├── Model.meta │ │ │ ├── Model │ │ │ ├── ExportConfig.cs │ │ │ ├── ExportConfig.cs.meta │ │ │ ├── ProjectBookmarkData.cs │ │ │ └── ProjectBookmarkData.cs.meta │ │ │ ├── Utility.meta │ │ │ └── Utility │ │ │ ├── DataGenerator.cs │ │ │ ├── DataGenerator.cs.meta │ │ │ ├── DataLoader.cs │ │ │ └── DataLoader.cs.meta │ ├── asset-bookmarker.asmdef │ └── asset-bookmarker.asmdef.meta │ ├── LICENSE.md │ ├── LICENSE.md.meta │ ├── package.json │ └── package.json.meta ├── Demo ├── 1.png ├── 2.png ├── 3.png ├── hierarchy.gif ├── hierarchy_1.png ├── hierarchy_2.png └── hierarchy_3.png ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshProjectSettings.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset └── UnityConnectSettings.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # =============== # 2 | # Unity generated # 3 | # =============== # 4 | Temp/ 5 | Obj/ 6 | UnityGenerated/ 7 | Library/ 8 | 9 | # ===================================== # 10 | # Visual Studio / MonoDevelop generated # 11 | # ===================================== # 12 | ExportedObj/ 13 | *.svd 14 | *.userprefs 15 | *.csproj 16 | *.pidb 17 | *.suo 18 | *.sln 19 | *.user 20 | *.unityproj 21 | *.booproj 22 | 23 | # ============ # 24 | # OS generated # 25 | # ============ # 26 | .DS_Store 27 | .DS_Store? 28 | ._* 29 | .Spotlight-V100 30 | .Trashes 31 | Icon? 32 | ehthumbs.db 33 | Thumbs.db 34 | 35 | # ============ # 36 | # for others # 37 | # ============ # 38 | 39 | *.log #log files, for some plugins 40 | *.pyc #python bytecode cache, for some plugins. 41 | sysinfo.txt #Unity3D Generated File On Crash Reports 42 | .idea/ 43 | -------------------------------------------------------------------------------- /AssetBookmarker-v2.2.unitypackage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/AssetBookmarker-v2.2.unitypackage -------------------------------------------------------------------------------- /Assets/AssetBookmarker.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89a6a6164d36a4944ba824a3f38a1234 3 | folderAsset: yes 4 | timeCreated: 1479721422 5 | licenseType: Pro 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [1.0.1] - 2021-01-04 2 | ### Changes 3 | Bug fix in creating new BookmarkData asset. 4 | 5 | ## [1.0.0] - 2021-01-04 6 | ### This is the first release of *Unity Package asset-bookmarker*. -------------------------------------------------------------------------------- /Assets/AssetBookmarker/CHANGELOG.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 31c21d615b11d494894bd20572cb8abd 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Data.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed0e0ddc80e08864b9ed2cbdf56deffd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Data/Hierarchy.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 730f7ed94ee7c1f4391dc50784af8f5e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Data/Hierarchy/BookmarkData.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 6231513db8392574c96c2b2c4d631fb1, type: 3} 13 | m_Name: BookmarkData 14 | m_EditorClassIdentifier: 15 | searchInfos: 16 | - Text: 17 | - Text: Directional Light 18 | - Text: Main Camera 19 | - Text: Directional Light 20 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Data/Hierarchy/BookmarkData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f258d4e8592efc54b9181a599b954a05 3 | timeCreated: 1481854645 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Data/Project.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18e1fb59039a211488b284d40b017e53 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Data/Project/BookmarkData.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: ebaec9793b4213149a18625e9618e232, type: 3} 13 | m_Name: BookmarkData 14 | m_EditorClassIdentifier: 15 | assets: 16 | - {fileID: 102900000, guid: 49110bb8dcada46328ad741970bce702, type: 3} 17 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Data/Project/BookmarkData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4c83ba0f3b8b54a4b98c48c7aba57dfe 3 | timeCreated: 1482403750 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e44bf09b6dd97f4a89835765825509d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Core.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a8fdf65414e4c8345a8c66a1d74a12f4 3 | folderAsset: yes 4 | timeCreated: 1481938077 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Core/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f597ef62db6b4e6458424fdbb8f822e4 3 | folderAsset: yes 4 | timeCreated: 1481938529 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Core/Editor/BookmarkWindowBase.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | 3 | namespace AssetBookmarker 4 | { 5 | /// 6 | /// ウィンドウの基底クラス 7 | /// 8 | public abstract class BookmarkWindowBase : EditorWindow 9 | { 10 | private void OnEnable() 11 | { 12 | PackageConfig.CheckInstall(); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Core/Editor/BookmarkWindowBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 123293cd93134d69b090a0db13d281dd 3 | timeCreated: 1609749542 -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Core/Editor/CustomUI.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | namespace AssetBookmarker 6 | { 7 | using UnityEngine; 8 | 9 | public class CustomUI 10 | { 11 | private static GUIStyle _versionLabelStyle; 12 | 13 | private static GUIStyle VersionLabelStyle { get { return _versionLabelStyle ?? (_versionLabelStyle = CreateVersionLabelStyle()); } } 14 | 15 | public static void VersionLabel() 16 | { 17 | GUI.Label(new Rect(-2, Screen.height - 72, Screen.width, 50), MenuConfig.VERSION_TEXT, VersionLabelStyle); 18 | } 19 | 20 | private static GUIStyle CreateVersionLabelStyle() 21 | { 22 | var style = new GUIStyle(GUI.skin.GetStyle("Label")); 23 | var color = new Color(style.normal.textColor.r, style.normal.textColor.g, style.normal.textColor.b, 0.4f); 24 | 25 | style.alignment = TextAnchor.LowerRight; 26 | style.normal.textColor = color; 27 | 28 | return style; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Core/Editor/CustomUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 67b6cae1c1c751d4ba81d348150d51f3 3 | timeCreated: 1480722234 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Core/Editor/GenericDataGenerator.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | 6 | using System.Runtime.CompilerServices; 7 | using AssetBookmarker.Project; 8 | 9 | namespace AssetBookmarker 10 | { 11 | using System.IO; 12 | using UnityEngine; 13 | using UnityEditor; 14 | 15 | /// 16 | /// ファイルの作成を行うクラス 17 | /// 18 | public static class GenericDataGenerator 19 | { 20 | /// 21 | /// データ作成(Projectウィンドウで名前入力) 22 | /// 23 | public static T CreateData(string dataName) where T : ScriptableObject 24 | { 25 | var directory = ExportConfig.GetDataExportDirectory(); 26 | var path = directory + "/" + dataName + ".asset"; 27 | Debug.Log(path); 28 | var instance = ScriptableObject.CreateInstance(); 29 | ProjectWindowUtil.CreateAsset(instance, path); 30 | 31 | return instance; 32 | } 33 | 34 | public static T CreateDataInProject(string dataName) where T : ScriptableObject 35 | { 36 | T instance = null; 37 | string path = EditorUtility.SaveFilePanelInProject("New BookmarkData", dataName + ".asset", "asset", "Create New Bookmark Data"); 38 | if (!string.IsNullOrEmpty(path)) 39 | { 40 | instance = ScriptableObject.CreateInstance(); 41 | AssetDatabase.CreateAsset(instance, path); 42 | EditorGUIUtility.PingObject(instance); 43 | } 44 | return instance; 45 | } 46 | 47 | /// 48 | /// データ作成(名前入力無しですぐに作成) 49 | /// 50 | public static T CreateDataImmediately(string dataName) where T : ScriptableObject 51 | { 52 | // return CreateDataImmediately_Project(rootFolderName, saveFolderRelativePath, dataName); 53 | var directory = ExportConfig.GetDataExportDirectory(); 54 | var path = Path.Combine(directory, dataName + ".asset"); 55 | path = AssetDatabase.GenerateUniqueAssetPath(path); 56 | 57 | var instance = ScriptableObject.CreateInstance(); 58 | Debug.Log("Create: " + path, instance); 59 | 60 | AssetDatabase.CreateAsset(instance, path); 61 | 62 | EditorGUIUtility.PingObject(instance); 63 | 64 | return instance; 65 | } 66 | 67 | // /// 68 | // /// Projectディレクトリ以下へのデータ作成(名前入力無しですぐに作成) 69 | // /// 70 | // private static T CreateDataImmediately_Project(string rootFolderName, string saveFolderRelativePath, string dataName) where T : ScriptableObject 71 | // { 72 | // var guid = AssetDatabase.FindAssets(rootFolderName)[0]; 73 | // var rootDirectory = AssetDatabase.GUIDToAssetPath(guid); 74 | // var directory = Path.Combine(rootDirectory, saveFolderRelativePath); 75 | // if (string.IsNullOrEmpty(rootDirectory)) 76 | // { 77 | // directory = "Assets"; 78 | // } 79 | // 80 | // var name = dataName + ".asset"; 81 | // var path = Path.Combine(directory, name); 82 | // var instance = ScriptableObject.CreateInstance(); 83 | // AssetDatabase.CreateAsset(instance, path); 84 | // Debug.Log("Create: " + path, instance); 85 | // 86 | // return instance; 87 | // } 88 | // 89 | // /// 90 | // /// Packageディレクトリ以下へのデータ作成 91 | // /// 92 | // private static T CreateDataImmediately_Package(string rootFolderName, string saveFolderRelativePath, string dataName) where T : ScriptableObject 93 | // { 94 | // var guid = AssetDatabase.FindAssets(rootFolderName)[0]; 95 | // var rootDirectory = AssetDatabase.GUIDToAssetPath(guid); 96 | // var directory = Path.Combine(rootDirectory, saveFolderRelativePath); 97 | // if (string.IsNullOrEmpty(rootDirectory)) 98 | // { 99 | // directory = "Assets"; 100 | // } 101 | // 102 | // var name = dataName + ".asset"; 103 | // var path = Path.Combine(directory, name); 104 | // var instance = ScriptableObject.CreateInstance(); 105 | // AssetDatabase.CreateAsset(instance, path); 106 | // Debug.Log("Create: " + path, instance); 107 | // 108 | // return instance; 109 | // } 110 | } 111 | } -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Core/Editor/GenericDataGenerator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a43841a547557004494a0e369af4cb45 3 | timeCreated: 1482399352 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Core/Editor/MenuConfig.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | namespace AssetBookmarker 6 | { 7 | /// 8 | /// 設定 9 | /// 10 | public static class MenuConfig 11 | { 12 | // バージョン情報 13 | public const string VERSION_TEXT = "Asset Bookmarker v1.0.1"; 14 | 15 | // Toolメニュー ルート 16 | public const string TOOL_MENU_ROOT = "Tools/Asset Bookmarker/Test/"; 17 | 18 | // Menuテキスト 19 | public const string TOOL_MENU_TEXT_OPEN_BOOKMARK_PROJECT = "Tools/Asset Bookmarker/Assets"; 20 | public const string GUI_MENU_TEXT_OPEN_BOOKMARK_HIERARCHY = "Tools/Asset Bookmarker/Hierarchy"; 21 | public const string GUI_MENU_TEXT_REGISTER_PROJECT = "Assets/Add to bookmark list"; 22 | public const string GUI_MENU_TEXT_REGISTER_HIERARCHY = "GameObject/Add to bookmark list..."; 23 | 24 | // ウィンドウ内のGUIテキスト (Project Bookmark Window) 25 | public const string GUI_WINDOW_PROJECT_TEXT_TITLE = "Asset Bookmarker"; 26 | public const string GUI_WINDOW_PROJECT_TEXT_OVERVIEW = "ブックマークしたアセット一覧を表示します"; 27 | public const string GUI_WINDOW_PROJECT_TEXT_LIST_HEADER = "Asset Bookmarks"; 28 | public const string GUI_WINDOW_PROJECT_TEXT_ASSET_REMOVE_BUTTON = "-"; 29 | 30 | // ウィンドウ内のGUIテキスト (Hierarchy Bookmark Window) 31 | public const string GUI_WINDOW_HIERARCHY_TEXT_TITLE = "Asset Bookmarker"; 32 | public const string GUI_WINDOW_HIERARCHY_TEXT_OVERVIEW = "ヒエラルキーの検索文字列一覧を表示します"; 33 | public const string GUI_WINDOW_HIERARCHY_TEXT_LIST_HEADER = "Hierarchy Search Filters"; 34 | public const string GUI_WINDOW_HIERARCHY_TEXT_FILTER_APPLY_BUTTON = "Apply"; 35 | public const string GUI_WINDOW_HIERARCHY_TEXT_FILTER_REMOVE_BUTTON = "-"; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Core/Editor/MenuConfig.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0fcd43dbee4d5224b8aef71ecb802e3c 3 | timeCreated: 1481857764 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Core/Editor/PackageConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using UnityEditor; 3 | using UnityEditor.Callbacks; 4 | using UnityEditor.PackageManager; 5 | using UnityEditor.PackageManager.Requests; 6 | using UnityEngine; 7 | 8 | namespace AssetBookmarker 9 | { 10 | public static class PackageConfig 11 | { 12 | public const string PackageName = "com.rngtm.asset-bookmarker"; 13 | private static bool isInstallInstallPackage = false; 14 | private static ListRequest Request; 15 | private static bool isDebugLog = false; 16 | 17 | public static string GetPackagePath(string path) => $"Packages/{PackageName}/{path}"; 18 | public static bool IsInstallPackage => isInstallInstallPackage; 19 | 20 | [MenuItem(MenuConfig.TOOL_MENU_ROOT + "Check Package Installation", priority = 100)] 21 | static void CheckInstallDebug() 22 | { 23 | isDebugLog = true; 24 | CheckInstall(); 25 | } 26 | 27 | [MenuItem(MenuConfig.TOOL_MENU_ROOT + "Test Path", priority = 100)] 28 | static void CheckPackagePath() 29 | { 30 | UnityEngine.Debug.Log(GetPackagePath("DataPath")); 31 | } 32 | 33 | [DidReloadScripts] 34 | public static void CheckInstall() 35 | { 36 | Request = Client.List(); 37 | EditorApplication.update += Progress; 38 | } 39 | 40 | static void Progress() 41 | { 42 | if (Request.IsCompleted) 43 | { 44 | if (Request.Status == StatusCode.Success) 45 | { 46 | if (Request.Result.Select(q => q.name).Contains(PackageName)) 47 | { 48 | if (isDebugLog) 49 | Debug.Log($"Is Install : {PackageName}"); 50 | isInstallInstallPackage = true; 51 | } 52 | else 53 | { 54 | if (isDebugLog) 55 | Debug.Log($"Is Not Install : {PackageName}"); 56 | isInstallInstallPackage = false; 57 | } 58 | } 59 | else if (Request.Status >= StatusCode.Failure) 60 | { 61 | Debug.Log(Request.Error.message); 62 | } 63 | 64 | EditorApplication.update -= Progress; 65 | isDebugLog = false; 66 | } 67 | } 68 | } 69 | } -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Core/Editor/PackageConfig.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 496f0bf57baf2754db533a45082f0cc3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f77764886db52f4699648a452091338 3 | folderAsset: yes 4 | timeCreated: 1481935798 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8788de041e97ccd4d80f49d807fa421b 3 | folderAsset: yes 4 | timeCreated: 1481851167 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/GUI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54e19a8efeee0164cbf51a0aa0e48d66 3 | folderAsset: yes 4 | timeCreated: 1481851201 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/GUI/HierarchyBookmarkWindow.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | namespace AssetBookmarker.Hierarchy 6 | { 7 | using System.Linq; 8 | using UnityEngine; 9 | using UnityEditor; 10 | using UnityEditorInternal; 11 | 12 | /// 13 | /// メインのウィンドウ 14 | /// 15 | public class HierarchyBookmarkWindow : BookmarkWindowBase 16 | { 17 | private HierarchyBookmarkData bookmarkData; 18 | 19 | /// 20 | /// 検索用テキスト表示用のReorderableList 21 | /// 22 | private ReorderableList searchInfoList; 23 | 24 | private Vector2 scrollPosition = Vector2.zero; 25 | 26 | /// 27 | /// ウィンドウ描画処理 28 | /// 29 | void OnGUI() 30 | { 31 | if (this.bookmarkData == null) 32 | { 33 | this.bookmarkData = DataLoader.LoadData(); 34 | } 35 | 36 | this.scrollPosition = EditorGUILayout.BeginScrollView(this.scrollPosition); 37 | 38 | if (this.searchInfoList == null) 39 | { 40 | this.RebuildSearchInfoList(); 41 | } 42 | 43 | EditorGUILayout.LabelField(MenuConfig.GUI_WINDOW_HIERARCHY_TEXT_OVERVIEW); 44 | 45 | this.searchInfoList.DoLayoutList(); 46 | EditorGUILayout.EndScrollView(); 47 | 48 | CustomUI.VersionLabel(); 49 | } 50 | 51 | /// 52 | /// ReorderableList作成 53 | /// 54 | private void RebuildSearchInfoList() 55 | { 56 | this.searchInfoList = this.CreateSearchInfoList(); 57 | } 58 | 59 | /// 60 | /// ReorderableList作成 61 | /// 62 | private ReorderableList CreateSearchInfoList() 63 | { 64 | var reorderableList = new ReorderableList(this.bookmarkData.SearchInfos, typeof(SearchInfo)); 65 | 66 | // ヘッダー描画 67 | var headerRect = default(Rect); 68 | reorderableList.drawHeaderCallback = (rect) => 69 | { 70 | headerRect = rect; 71 | EditorGUI.LabelField(rect, MenuConfig.GUI_WINDOW_HIERARCHY_TEXT_LIST_HEADER); 72 | }; 73 | 74 | // フッター描画 75 | reorderableList.drawFooterCallback = (rect) => 76 | { 77 | rect.y = headerRect.y + 3; 78 | ReorderableList.defaultBehaviours.DrawFooter(rect, reorderableList); 79 | }; 80 | 81 | // 要素の描画 82 | reorderableList.drawElementCallback = (rect, index, isActive, isFocused) => 83 | { 84 | rect.height -= 6f; 85 | rect.y += 3f; 86 | 87 | const float space = 4f; 88 | const float removeButtonWidth = 19f; 89 | 90 | var selectButtonRect = new Rect(rect); 91 | selectButtonRect.width = 42f; 92 | 93 | var textRect = new Rect(rect); 94 | textRect.width -= selectButtonRect.width + removeButtonWidth + space; 95 | textRect.x = selectButtonRect.x + selectButtonRect.width + space; 96 | 97 | var removeButtonRect = new Rect(rect); 98 | removeButtonRect.width = removeButtonWidth; 99 | removeButtonRect.height -= 1f; 100 | removeButtonRect.x = textRect.x + textRect.width + 2; 101 | 102 | // Apply Button 103 | if (GUI.Button(selectButtonRect, MenuConfig.GUI_WINDOW_HIERARCHY_TEXT_FILTER_APPLY_BUTTON, EditorStyles.miniButton)) 104 | { 105 | var data = (SearchInfo)reorderableList.list[index]; 106 | SceneHierarchyAccessor.SetSearchFilter(data.Text); 107 | 108 | if (!string.IsNullOrEmpty(data.Text)) 109 | { 110 | SceneHierarchyAccessor.SelectTop(); 111 | } 112 | } 113 | 114 | // Remove Button 115 | if (GUI.Button(removeButtonRect, MenuConfig.GUI_WINDOW_HIERARCHY_TEXT_FILTER_REMOVE_BUTTON)) 116 | { 117 | this.DoRemoveButton(index); 118 | } 119 | 120 | EditorGUI.BeginChangeCheck(); 121 | var text = EditorGUI.TextField(textRect, this.bookmarkData.SearchInfos[index].Text); 122 | if (EditorGUI.EndChangeCheck()) 123 | { 124 | this.bookmarkData.SearchInfos[index].Text = text; 125 | EditorUtility.SetDirty(this.bookmarkData); 126 | } 127 | }; 128 | 129 | reorderableList.drawElementBackgroundCallback = (rect, index, isActive, isFocused) => { }; 130 | 131 | return reorderableList; 132 | } 133 | 134 | /// 135 | /// リストの要素を削除 136 | /// 137 | private void DoRemoveButton(int index) 138 | { 139 | EditorApplication.delayCall += () => 140 | { 141 | this.bookmarkData.SearchInfos.RemoveAt(index); 142 | this.Repaint(); 143 | EditorUtility.SetDirty(this.bookmarkData); 144 | }; 145 | } 146 | 147 | /// 148 | /// ウィンドウを開く 149 | /// 150 | [MenuItem(MenuConfig.GUI_MENU_TEXT_OPEN_BOOKMARK_HIERARCHY)] 151 | static void Open() 152 | { 153 | var window = GetWindow(); 154 | window.titleContent.text = MenuConfig.GUI_WINDOW_HIERARCHY_TEXT_TITLE; 155 | window.Repaint(); 156 | } 157 | 158 | /// 159 | /// 選択オブジェクトを登録 160 | /// 161 | [MenuItem(MenuConfig.GUI_MENU_TEXT_REGISTER_HIERARCHY, false, 12)] 162 | static void RegisterSelectionToPalette() 163 | { 164 | var data = DataLoader.LoadData(); 165 | data.SearchInfos.AddRange( 166 | Selection.gameObjects.Select(go => new SearchInfo { Text = go.name }) 167 | ); 168 | EditorUtility.SetDirty(data); 169 | Open(); 170 | } 171 | 172 | /// 173 | /// RegisterSelectionToPaletteのValidateメソッド 174 | /// 175 | [MenuItem(MenuConfig.GUI_MENU_TEXT_REGISTER_HIERARCHY, true)] 176 | static bool ValidateAddSelectionToPalette() 177 | { 178 | return Selection.activeObject != null && !AssetDatabase.IsMainAsset(Selection.activeObject); 179 | } 180 | 181 | } 182 | } 183 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/GUI/HierarchyBookmarkWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa04565616956ef43ae7f144a5f4ba7f 3 | timeCreated: 1481851259 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/Model.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d5545d0b16e16242952a4a4214eb13f 3 | folderAsset: yes 4 | timeCreated: 1481851201 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/Model/HierarchyBookmarkData.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | namespace AssetBookmarker.Hierarchy 6 | { 7 | using UnityEngine; 8 | using System.Collections.Generic; 9 | 10 | /// 11 | /// ブックマーク情報 12 | /// 13 | public class HierarchyBookmarkData : ScriptableObject 14 | { 15 | [SerializeField] private List searchInfos = new List(); 16 | 17 | /// 18 | /// 検索情報 19 | /// 20 | public List SearchInfos { get { return this.searchInfos; } } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/Model/HierarchyBookmarkData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6231513db8392574c96c2b2c4d631fb1 3 | timeCreated: 1481854629 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/Model/SearchInfo.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | namespace AssetBookmarker.Hierarchy 6 | { 7 | using System; 8 | 9 | /// 10 | /// 検索用情報 11 | /// 12 | [SerializableAttribute] 13 | public class SearchInfo 14 | { 15 | public string Text; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/Model/SearchInfo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: df4e050ddf4c74c4b88a6c0fce8f2813 3 | timeCreated: 1481851259 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/Utility.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e5b90a19b7477b469fda586891eb981 3 | folderAsset: yes 4 | timeCreated: 1481851201 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/Utility/DataLoader.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | namespace AssetBookmarker.Hierarchy 6 | { 7 | using System.Linq; 8 | using UnityEditor; 9 | 10 | /// 11 | /// データのロードを行うクラス 12 | /// 13 | public class DataLoader 14 | { 15 | /// 16 | /// データのロード 17 | /// 18 | public static HierarchyBookmarkData LoadData() 19 | { 20 | return AssetDatabase.FindAssets("t:ScriptableObject") 21 | .Select(guid => AssetDatabase.GUIDToAssetPath(guid)) 22 | .Select(path => AssetDatabase.LoadAssetAtPath(path, typeof(HierarchyBookmarkData))) 23 | .Where(obj => obj != null) 24 | .Select(obj => (HierarchyBookmarkData)obj) 25 | .FirstOrDefault(); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/Utility/DataLoader.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98a82a2a7559e8747959d932d8c018e2 3 | timeCreated: 1481851259 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/Utility/SceneHierarchyAccessor.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | namespace AssetBookmarker.Hierarchy 6 | { 7 | using System.Collections.Generic; 8 | using System.Reflection; 9 | using UnityEngine; 10 | using UnityEditor; 11 | using UnityEditor.IMGUI.Controls; 12 | 13 | /// 14 | /// SceneHierarchyWindowへのアクセスを行うクラス 15 | /// 16 | public class SceneHierarchyAccessor 17 | { 18 | /// 19 | /// Hierarchyの検索ボックスの文字列を設定 20 | /// 21 | /// 検索文字列 22 | public static void SetSearchFilter(string filter) 23 | { 24 | // Hierarchyウィンドウ取得 25 | var asm = Assembly.Load("UnityEditor.dll"); 26 | var typeWindow = asm.GetType("UnityEditor.SceneHierarchyWindow"); 27 | var window = EditorWindow.GetWindow(typeWindow); 28 | 29 | // 検索ボックスの文字列を設定 30 | var mode = (SearchableEditorWindow.SearchMode)typeWindow.GetField("m_SearchMode", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(window); 31 | var setAll = false; 32 | #if UNITY_2018_3_OR_NEWER 33 | var delayed = false; 34 | typeWindow 35 | .GetMethod("SetSearchFilter", BindingFlags.Instance | BindingFlags.NonPublic) 36 | .Invoke(window, new object[] { filter, mode, setAll, delayed }); 37 | #else 38 | typeWindow 39 | .GetMethod("SetSearchFilter", BindingFlags.Instance | BindingFlags.NonPublic) 40 | .Invoke(window, new object[] { filter, mode, setAll }); 41 | #endif 42 | 43 | } 44 | 45 | /// 46 | /// Hierarchyで一番上にある項目を選択 47 | /// 48 | public static void SelectTop() 49 | { 50 | var rows = GetRows(); 51 | if (rows.Count < 2) { return; } 52 | 53 | var gameObject = (GameObject)EditorUtility.InstanceIDToObject(rows[1].id); 54 | Selection.activeGameObject = gameObject; 55 | } 56 | 57 | /// 58 | /// ヒエラルキーウィンドウ上の項目の一覧取得 59 | /// 60 | public static IList GetRows() 61 | { 62 | #if UNITY_2018_3_OR_NEWER 63 | return GetRows_UNITY_2018_3_OR_NEWER(); 64 | #else 65 | return GetRows_OLD(); 66 | #endif 67 | } 68 | 69 | /// 70 | /// ヒエラルキーウィンドウ上の項目の一覧取得 71 | /// 72 | public static IList GetRows_UNITY_2018_3_OR_NEWER() 73 | { 74 | // private SceneHierarchy m_SceneHierarchy; 75 | 76 | // Hierarchyウィンドウ取得 77 | var asm = Assembly.Load("UnityEditor.dll"); 78 | var typeWindow = asm.GetType("UnityEditor.SceneHierarchyWindow"); 79 | var window = EditorWindow.GetWindow(typeWindow); 80 | 81 | // Get : SceneHierarchyWindow.m_SceneHierarchy 82 | var sceneHierarchy = typeWindow 83 | .GetField("m_SceneHierarchy", BindingFlags.Instance | BindingFlags.NonPublic) 84 | .GetValue(window); 85 | 86 | // Get : m_SceneHierarchy.m_TreeView 87 | var m_TreeView = sceneHierarchy.GetType() 88 | .GetField("m_TreeView", BindingFlags.Instance | BindingFlags.NonPublic) 89 | .GetValue(sceneHierarchy); 90 | 91 | // Get : m_TreeView.data 92 | var data = m_TreeView.GetType() 93 | .GetProperty("data", BindingFlags.Instance | BindingFlags.Public) 94 | .GetValue(m_TreeView, null); 95 | 96 | // Invoke : TreeViewController.GetRows() 97 | return (IList)data.GetType() 98 | .GetMethod("GetRows", BindingFlags.Instance | BindingFlags.Public) 99 | .Invoke(data, null); 100 | } 101 | 102 | /// 103 | /// ヒエラルキーウィンドウ上の項目の一覧取得 104 | /// 105 | public static IList GetRows_OLD() 106 | { 107 | // Hierarchyウィンドウ取得 108 | var asm = Assembly.Load("UnityEditor.dll"); 109 | var typeWindow = asm.GetType("UnityEditor.SceneHierarchyWindow"); 110 | var window = EditorWindow.GetWindow(typeWindow); 111 | 112 | // GetRows実行 113 | var m_TreeView = typeWindow.GetField("m_TreeView", BindingFlags.Instance | BindingFlags.NonPublic) 114 | .GetValue(window); 115 | var data = m_TreeView.GetType().GetProperty("data", BindingFlags.Instance | BindingFlags.Public) 116 | .GetValue(m_TreeView, null); 117 | return (IList)data.GetType().GetMethod("GetRows", BindingFlags.Instance | BindingFlags.Public) 118 | .Invoke(data, null); 119 | } 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Hierarchy/Editor/Utility/SceneHierarchyAccessor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2d2d0638ea34ab40801a42881bbca40 3 | timeCreated: 1481851259 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a68c8c1fe2f6b154b93c42d8127c44df 3 | folderAsset: yes 4 | timeCreated: 1481936212 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c57de66768e62eb46b8a29e1e2eee480 3 | folderAsset: yes 4 | timeCreated: 1479715494 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/GUI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dc25fb703685f124eb729449c658fed7 3 | folderAsset: yes 4 | timeCreated: 1481936245 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/GUI/ProjectBookmarkWindow.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | namespace AssetBookmarker.Project 6 | { 7 | using System.Linq; 8 | using UnityEngine; 9 | using UnityEditor; 10 | using UnityEditor.Callbacks; 11 | using UnityEditorInternal; 12 | 13 | /// 14 | /// ブックマークの管理を行うウィンドウ 15 | /// 16 | public class ProjectBookmarkWindow : BookmarkWindowBase 17 | { 18 | /// 19 | /// Label領域の大きさ 20 | /// 21 | private const float LabelWidth = 68f; 22 | 23 | /// 24 | /// ボタンの大きさ 25 | /// 26 | private const float ButtonWidth = 46f; 27 | 28 | /// 29 | /// ポップアップ表示用の文字列 30 | /// 31 | private string[] popupDisplayedOptions; 32 | 33 | /// 34 | /// Bookmark表示用のReorderableList 35 | /// 36 | private ReorderableList bookmarkList; 37 | 38 | /// 39 | /// 現在選択しているブックマーク 40 | /// 41 | [SerializeField] private int currentBookmarkIndex = 0; 42 | 43 | /// 44 | /// 現在選択しているブックマークデータ名 45 | /// 46 | [SerializeField] private string currentBookmarkName; 47 | 48 | /// 49 | /// ブックマーク情報 50 | /// 51 | private ProjectBookmarkData[] bookmarkDatas; 52 | 53 | private static EditorWindow window; 54 | private static bool needReloadData = false; 55 | private static Object[] willRegisterAssets = null; 56 | 57 | /// 58 | /// アセットのロード時に呼ばれる 59 | /// 60 | [DidReloadScripts] 61 | [InitializeOnLoadMethodAttribute] 62 | public static void OnLoadAssets() 63 | { 64 | needReloadData = true; 65 | } 66 | 67 | /// 68 | /// ウィンドウの描画処理 69 | /// 70 | private void OnGUI() 71 | { 72 | if (window == null) 73 | { 74 | window = this; 75 | } 76 | 77 | if (needReloadData) 78 | { 79 | needReloadData = false; 80 | this.ReloadDatas(); 81 | } 82 | 83 | if (bookmarkDatas == null) 84 | { 85 | this.ReloadDatas(); 86 | } 87 | 88 | if (this.bookmarkList == null) 89 | { 90 | this.RebuildBookmarkList(); 91 | } 92 | 93 | if (willRegisterAssets != null) 94 | { 95 | var data = this.bookmarkDatas[this.currentBookmarkIndex]; 96 | data.Assets.AddRange(willRegisterAssets); 97 | EditorUtility.SetDirty(data); 98 | willRegisterAssets = null; 99 | } 100 | 101 | EditorGUILayout.LabelField(MenuConfig.GUI_WINDOW_PROJECT_TEXT_OVERVIEW); 102 | EditorGUILayout.BeginHorizontal(); 103 | EditorGUI.BeginChangeCheck(); 104 | EditorGUILayout.LabelField("Bookmark", GUILayout.Width(LabelWidth)); 105 | int index = EditorGUILayout.Popup(this.currentBookmarkIndex, this.popupDisplayedOptions); 106 | if (EditorGUI.EndChangeCheck()) 107 | { 108 | if (index < bookmarkDatas.Length) 109 | { 110 | this.currentBookmarkIndex = index; 111 | this.currentBookmarkName = this.bookmarkDatas[this.currentBookmarkIndex].name; 112 | this.RebuildBookmarkList(); 113 | } 114 | else // New... を選択した場合 115 | { 116 | // DataGenerator.CreateBookmarkData(); 117 | // DataGenerator.CreateBookmarkDataImmediately(); 118 | 119 | var instance = GenericDataGenerator.CreateDataInProject(ExportConfig.DefaultAssetName); 120 | if (instance != null) 121 | { 122 | this.ReloadDatas(); 123 | this.RebuildBookmarkList(); 124 | } 125 | } 126 | } 127 | if (GUILayout.Button("Select", EditorStyles.miniButton, GUILayout.Width(ButtonWidth))) 128 | { 129 | EditorGUIUtility.PingObject(bookmarkDatas[this.currentBookmarkIndex]); 130 | } 131 | EditorGUILayout.EndHorizontal(); 132 | 133 | this.bookmarkList.DoLayoutList(); 134 | 135 | CustomUI.VersionLabel(); 136 | } 137 | 138 | /// 139 | /// ReorderableListを作成する 140 | /// 141 | private void RebuildBookmarkList() 142 | { 143 | this.bookmarkList = CreateBookmarkList(bookmarkDatas[this.currentBookmarkIndex]); 144 | } 145 | 146 | /// 147 | /// データのリロード 148 | /// 149 | private void ReloadDatas() 150 | { 151 | this.bookmarkDatas = DataLoader.LoadData(); 152 | if (this.bookmarkDatas.Length == 0) 153 | { 154 | Debug.LogWarning("bookmark not found"); 155 | DataGenerator.CreateBookmarkDataImmediately(); 156 | this.bookmarkDatas = DataLoader.LoadData(); 157 | this.RebuildBookmarkList(); 158 | } 159 | 160 | this.popupDisplayedOptions = this.bookmarkDatas 161 | .Select(b => b.name) 162 | .Concat(new[] { "", "New..." }).ToArray(); 163 | 164 | var selection = this.bookmarkDatas 165 | .Select((d,i) => new { Data = d, Index = i }) 166 | .FirstOrDefault(item => item.Data.name == this.currentBookmarkName); 167 | 168 | if (selection != null) 169 | { 170 | this.currentBookmarkIndex = selection.Index; 171 | } 172 | else 173 | { 174 | // 直前に選択していたブックマークが見つからなかった場合は選択リセット 175 | this.currentBookmarkIndex = 0; 176 | } 177 | 178 | this.currentBookmarkName = this.bookmarkDatas[this.currentBookmarkIndex].name; 179 | } 180 | 181 | /// 182 | /// ReorderableListを作成する 183 | /// 184 | static private ReorderableList CreateBookmarkList(ProjectBookmarkData bookmarkData) 185 | { 186 | var list = new ReorderableList(bookmarkData.Assets, typeof(Object)); 187 | 188 | // ヘッダー描画 189 | var headerRect = default(Rect); 190 | list.drawHeaderCallback = (rect) => 191 | { 192 | headerRect = rect; 193 | EditorGUI.LabelField(rect, MenuConfig.GUI_WINDOW_PROJECT_TEXT_LIST_HEADER); 194 | }; 195 | 196 | // フッター描画 197 | list.drawFooterCallback = (rect) => 198 | { 199 | rect.y = headerRect.y + 3; 200 | ReorderableList.defaultBehaviours.DrawFooter(rect, list); 201 | }; 202 | 203 | // 要素の描画 204 | list.drawElementCallback = (rect, index, isActive, isFocused) => 205 | { 206 | rect.y += 1; 207 | rect.height -= 4; 208 | 209 | var labelRect = new Rect(rect); 210 | labelRect.width = 13f; 211 | 212 | var buttonRect = new Rect(rect); 213 | buttonRect.x += labelRect.width + 8f; 214 | buttonRect.width = 20f; 215 | buttonRect.y += 1f; 216 | buttonRect.height -= 2f; 217 | 218 | var objectRect = new Rect(rect); 219 | objectRect.width -= labelRect.width + buttonRect.width + 18f; 220 | objectRect.x += labelRect.width + buttonRect.width + 16f; 221 | 222 | EditorGUI.LabelField(labelRect, index.ToString()); 223 | EditorGUI.BeginChangeCheck(); 224 | var asset = (Object)list.list[index]; 225 | asset = EditorGUI.ObjectField(objectRect, asset, typeof(Object), false); 226 | if (EditorGUI.EndChangeCheck()) 227 | { 228 | list.list[index] = asset; 229 | EditorUtility.SetDirty(bookmarkData); 230 | } 231 | 232 | if (GUI.Button(buttonRect, "-")) 233 | { 234 | DoRemoveButton(list, index); 235 | EditorUtility.SetDirty(bookmarkData); 236 | } 237 | }; 238 | 239 | list.onChangedCallback += (index) => 240 | { 241 | EditorUtility.SetDirty(bookmarkData); 242 | }; 243 | 244 | return list; 245 | } 246 | 247 | /// 248 | /// 要素の削除 249 | /// 250 | static private void DoRemoveButton(ReorderableList list, int index) 251 | { 252 | EditorApplication.delayCall += () => 253 | { 254 | list.list.RemoveAt(index); 255 | window.Repaint(); 256 | }; 257 | } 258 | 259 | /// 260 | /// ウィンドウを開く 261 | /// 262 | [MenuItem(MenuConfig.TOOL_MENU_TEXT_OPEN_BOOKMARK_PROJECT)] 263 | static void Open() 264 | { 265 | var window = GetWindow(); 266 | window.titleContent.text = MenuConfig.GUI_WINDOW_PROJECT_TEXT_TITLE; 267 | window.Repaint(); 268 | } 269 | 270 | /// 271 | /// エディタ上で選択しているアセットをBookmarkへ登録 272 | /// 273 | [MenuItem(MenuConfig.GUI_MENU_TEXT_REGISTER_PROJECT, false, 10001)] 274 | static void RegisterSelection() 275 | { 276 | willRegisterAssets = Selection.objects; 277 | Open(); 278 | } 279 | 280 | /// 281 | /// RegisterSelectionのValidateメソッド 282 | /// 283 | [MenuItem(MenuConfig.GUI_MENU_TEXT_REGISTER_PROJECT, true)] 284 | static bool ValidateRegisterSelection() 285 | { 286 | return Selection.activeObject != null; 287 | } 288 | } 289 | } 290 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/GUI/ProjectBookmarkWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8615fcae2b39a8944bffba54d9b13e3d 3 | timeCreated: 1479715502 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/Model.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 32643277709d5da4ca7287f53cc1000e 3 | folderAsset: yes 4 | timeCreated: 1481936245 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/Model/ExportConfig.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | namespace AssetBookmarker.Project 6 | { 7 | /// 8 | /// Export設定 9 | /// 10 | public static class ExportConfig 11 | { 12 | // /// 13 | // /// AssetBookmarkerのルートフォルダ名 14 | // /// 15 | // private const string RootFolderName = "AssetBookmarker"; 16 | 17 | // private const string DataRealtivePath = "Data/Project"; 18 | private const string DataRealtivePath = "Data/Project"; 19 | 20 | /// 21 | /// Bookmarkデータの保存先の相対パス(Assetsフォルダ以下) 22 | /// 23 | private const string ProjectSaveFolderPath = "Assets/AssetBookmarker/" + DataRealtivePath; 24 | 25 | /// 26 | /// Bookmarkデータの保存先の相対パス(Packageフォルダ以下) 27 | /// 28 | private static readonly string PackageSaveFolderPath = "Assets/AssetBookmarker/" + DataRealtivePath; 29 | 30 | /// 31 | /// 新規Bookmarkデータのデフォルトの名前 32 | /// 33 | public const string DefaultAssetName = "NewBookmarkData"; 34 | 35 | public static string GetDataExportDirectory() 36 | { 37 | return PackageConfig.IsInstallPackage ? PackageSaveFolderPath : ProjectSaveFolderPath; 38 | } 39 | 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/Model/ExportConfig.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f51b3f028fd5fb47a114f294965280b 3 | timeCreated: 1482399527 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/Model/ProjectBookmarkData.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | namespace AssetBookmarker.Project 6 | { 7 | using System.Collections.Generic; 8 | using UnityEngine; 9 | 10 | /// 11 | /// Bookmarkのデータ 12 | /// 13 | public class ProjectBookmarkData : ScriptableObject 14 | { 15 | [SerializeField] private List assets = new List(); 16 | 17 | /// 18 | /// ブックマークとして登録しているアセット 19 | /// 20 | public List Assets { get { return this.assets; } } 21 | } 22 | } -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/Model/ProjectBookmarkData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ebaec9793b4213149a18625e9618e232 3 | timeCreated: 1479715903 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/Utility.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4b90dbbf93163c54c8a24660bdb28998 3 | folderAsset: yes 4 | timeCreated: 1481936245 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/Utility/DataGenerator.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | namespace AssetBookmarker.Project 6 | { 7 | /// 8 | /// ファイルの作成を行うクラス 9 | /// 10 | public class DataGenerator 11 | { 12 | /// 13 | /// データを作成 14 | /// 15 | public static ProjectBookmarkData CreateBookmarkData() 16 | { 17 | return GenericDataGenerator.CreateData( 18 | ExportConfig.DefaultAssetName 19 | ); 20 | } 21 | 22 | /// 23 | /// データを強制的に作成 24 | /// 25 | public static ProjectBookmarkData CreateBookmarkDataImmediately() 26 | { 27 | return GenericDataGenerator.CreateDataImmediately( 28 | ExportConfig.DefaultAssetName 29 | ); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/Utility/DataGenerator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e32d353ce2750b5449580565d3c6a8cf 3 | timeCreated: 1482399352 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/Utility/DataLoader.cs: -------------------------------------------------------------------------------- 1 | ///----------------------------------------- 2 | /// AssetBookmarker 3 | /// @ 2016 RNGTM(https://github.com/rngtm) 4 | ///----------------------------------------- 5 | namespace AssetBookmarker.Project 6 | { 7 | using System.Linq; 8 | using UnityEditor; 9 | 10 | /// 11 | /// データのロードを行うクラス 12 | /// 13 | public class DataLoader : AssetPostprocessor 14 | { 15 | /// 16 | /// アセットのインポート完了時に呼ばれる 17 | /// 18 | static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) 19 | { 20 | ProjectBookmarkWindow.OnLoadAssets(); 21 | } 22 | 23 | /// 24 | /// Bookmarkデータのロード 25 | /// 26 | public static ProjectBookmarkData[] LoadData() 27 | { 28 | return AssetDatabase.FindAssets("t:ScriptableObject") 29 | .Select(guid => AssetDatabase.GUIDToAssetPath(guid)) 30 | .Select(path => AssetDatabase.LoadAssetAtPath(path, typeof(ProjectBookmarkData))) 31 | .Where(obj => obj != null) 32 | .Select(obj => (ProjectBookmarkData) obj) 33 | .ToArray(); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/Project/Editor/Utility/DataLoader.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3af0fef143ff8f544aec4e5d6776959f 3 | timeCreated: 1479716187 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/asset-bookmarker.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "asset-bookmarker", 3 | "rootNamespace": "", 4 | "references": [], 5 | "includePlatforms": [ 6 | "Editor" 7 | ], 8 | "excludePlatforms": [], 9 | "allowUnsafeCode": false, 10 | "overrideReferences": false, 11 | "precompiledReferences": [], 12 | "autoReferenced": false, 13 | "defineConstraints": [], 14 | "versionDefines": [], 15 | "noEngineReferences": false 16 | } -------------------------------------------------------------------------------- /Assets/AssetBookmarker/Editor/asset-bookmarker.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7c1dedc9d5576a74cb8fa041c864db38 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 r-ngtm 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /Assets/AssetBookmarker/LICENSE.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4310b46955b062c419a48d61f952e264 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/AssetBookmarker/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.rngtm.asset-bookmarker", 3 | "displayName": "Asset Bookmarker", 4 | "version": "1.0.1", 5 | "unity": "2020.2", 6 | "description": "A tool to bookmark Unity assets.", 7 | "author": { 8 | "name": "r-ngtm", 9 | "url": "https://github.com/rngtm" 10 | }, 11 | "dependencies": { 12 | } 13 | } -------------------------------------------------------------------------------- /Assets/AssetBookmarker/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c2aa18b4a6c4ae41917276fba07affb 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Demo/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/Demo/1.png -------------------------------------------------------------------------------- /Demo/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/Demo/2.png -------------------------------------------------------------------------------- /Demo/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/Demo/3.png -------------------------------------------------------------------------------- /Demo/hierarchy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/Demo/hierarchy.gif -------------------------------------------------------------------------------- /Demo/hierarchy_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/Demo/hierarchy_1.png -------------------------------------------------------------------------------- /Demo/hierarchy_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/Demo/hierarchy_2.png -------------------------------------------------------------------------------- /Demo/hierarchy_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/Demo/hierarchy_3.png -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.rngtm.hoge": "file:C:/Users/r_ngt/OneDrive/Documents/01_Development/GitHub/01_MyRepository/Hoge", 4 | "com.unity.collab-proxy": "1.3.9", 5 | "com.unity.ide.rider": "2.0.7", 6 | "com.unity.ide.visualstudio": "2.0.5", 7 | "com.unity.ide.vscode": "1.2.3", 8 | "com.unity.test-framework": "1.1.19", 9 | "com.unity.textmeshpro": "3.0.1", 10 | "com.unity.timeline": "1.4.4", 11 | "com.unity.ugui": "1.0.0", 12 | "com.unity.modules.ai": "1.0.0", 13 | "com.unity.modules.androidjni": "1.0.0", 14 | "com.unity.modules.animation": "1.0.0", 15 | "com.unity.modules.assetbundle": "1.0.0", 16 | "com.unity.modules.audio": "1.0.0", 17 | "com.unity.modules.cloth": "1.0.0", 18 | "com.unity.modules.director": "1.0.0", 19 | "com.unity.modules.imageconversion": "1.0.0", 20 | "com.unity.modules.imgui": "1.0.0", 21 | "com.unity.modules.jsonserialize": "1.0.0", 22 | "com.unity.modules.particlesystem": "1.0.0", 23 | "com.unity.modules.physics": "1.0.0", 24 | "com.unity.modules.physics2d": "1.0.0", 25 | "com.unity.modules.screencapture": "1.0.0", 26 | "com.unity.modules.terrain": "1.0.0", 27 | "com.unity.modules.terrainphysics": "1.0.0", 28 | "com.unity.modules.tilemap": "1.0.0", 29 | "com.unity.modules.ui": "1.0.0", 30 | "com.unity.modules.uielements": "1.0.0", 31 | "com.unity.modules.umbra": "1.0.0", 32 | "com.unity.modules.unityanalytics": "1.0.0", 33 | "com.unity.modules.unitywebrequest": "1.0.0", 34 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 35 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 36 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 37 | "com.unity.modules.unitywebrequestwww": "1.0.0", 38 | "com.unity.modules.vehicles": "1.0.0", 39 | "com.unity.modules.video": "1.0.0", 40 | "com.unity.modules.vr": "1.0.0", 41 | "com.unity.modules.wind": "1.0.0", 42 | "com.unity.modules.xr": "1.0.0" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/AudioManager.asset -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/ClusterInputManager.asset -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/DynamicsManager.asset -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/EditorBuildSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/EditorSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/GraphicsSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/InputManager.asset -------------------------------------------------------------------------------- /ProjectSettings/NavMeshProjectSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/NavMeshProjectSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/NetworkManager.asset -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/Physics2DSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/ProjectSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2020.2.0f1 2 | m_EditorVersionWithRevision: 2020.2.0f1 (3721df5a8b28) 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/QualitySettings.asset -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/TagManager.asset -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/TimeManager.asset -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rngtm/Unity-AssetBookmarker/a4e37c087399ddaf412ff17016b2ddaea563d676/ProjectSettings/UnityConnectSettings.asset -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Unity-AssetBookmarker 2 | ============ 3 | **AssetBookmarker** is a tool to bookmark Unity assets. 4 | 5 |
6 | 7 | # Git Path (Unity Package Manager) 8 | > https://github.com/rngtm/Unity-AssetBookmarker.git?path=Assets/AssetBookmarker 9 | 10 |
11 | 12 | # How to use 13 | You can bookmark the assets that belong to your project. 14 | 15 | step1: Right-click the asset which you want to bookmark. 16 |
17 | 18 |
19 |
20 | 21 | step2: Select "Add to bookmark list" in context menu. 22 |
23 | 24 |
25 |
26 | 27 | That's it! 28 |
29 | 30 |
31 | You can choose which assets appear in the bookmarks. 32 | 33 |
34 | 35 | # Hierarchy Bookmarks 36 | You can bookmark the text in the Hierarchy search box. (since **v2.0**) 37 | 38 |
39 | step1: Right-click the GamaObject in the Hierarchy window which you want to bookmark. 40 |
41 | 42 |
43 |
44 | 45 | step2: Select "Add to bookmark list" in context menu. 46 |
47 | 48 |
49 |
50 | 51 | That's it! 52 |
53 | 54 | 55 |
56 | You can paste the text into the Hierarchy search box by clicking the "Apply" button. 57 | 58 | 59 | That's all. 60 | 61 | 62 | 63 | License 64 | ------- 65 | The MIT License (MIT) 66 | 67 | Copyright (c) 2016 RNGTM (https://github.com/rngtm) 68 | 69 | Permission is hereby granted, free of charge, to any person obtaining a copy of 70 | this software and associated documentation files (the "Software"), to deal in 71 | the Software without restriction, including without limitation the rights to 72 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 73 | the Software, and to permit persons to whom the Software is furnished to do so, 74 | subject to the following conditions: 75 | 76 | The above copyright notice and this permission notice shall be included in all 77 | copies or substantial portions of the Software. 78 | 79 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 80 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 81 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 82 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 83 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 84 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 85 | --------------------------------------------------------------------------------