コード例 #1
0
        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);
                    }
                }
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
        }