private void LayoutItem(int i, BookmarkedObject obj) { if (_eraseButtonStyle == null) { _eraseButtonStyle = new GUIStyle(GUI.skin.button) { stretchWidth = false, stretchHeight = true }; } if (obj != null && obj.Object != null) { using (new GUILayout.HorizontalScope(GUILayout.Height(22.0f))) { if (obj.Object == _selectedObject) { GUI.enabled = false; } if (GUILayout.Button(obj.Object.name + obj.Type, GUILayout.Height(21.0f))) { _selectedObject = obj.Object; Selection.activeObject = obj.Object; } GUI.enabled = true; if (GUILayout.Button(EditorGUIUtility.IconContent("Toolbar Minus"), _eraseButtonStyle)) { _bookmarkedObjects.Remove(obj); } } } }
private void OnEnable() { _bookmarkedObjects.Clear(); int count = PlayerPrefs.GetInt(BOOKMARK_PREF_COUNT_KEY); for (int i = 0; i < count; i++) { string path = PlayerPrefs.GetString(BOOKMARK_PREF_OBJECT_KEY + i.ToString()); BookmarkedObject newObj = new BookmarkedObject() { Object = AssetDatabase.LoadAssetAtPath(path, typeof(object)), Type = path.Substring(path.LastIndexOf('.')) }; _bookmarkedObjects.Add(newObj); } }
private void LayoutAddButton() { GUILayout.Space(5); if (GUILayout.Button("Add", EditorStyles.miniButton)) { BookmarkedObject obj = _bookmarkedObjects.Find(item => item.Object == Selection.activeObject); if (obj == null) { string type = ""; string assetPath = AssetDatabase.GetAssetPath(Selection.activeObject); if (AssetDatabase.Contains(Selection.activeInstanceID) == false) { type = " (in-scene)"; } else { int index = assetPath.LastIndexOf('.'); if (index == -1) { type = " (folder)"; } else { type = assetPath.Substring(index); } } obj = new BookmarkedObject() { Object = Selection.activeObject, Type = type }; _bookmarkedObjects.Add(obj); } } GUILayout.Space(5); }