Beispiel #1
0
        protected override FMultiTypeInspector <FTrack> CreateMultiTypeInspector()
        {
            FMultiTypeInspector <FTrack> multiTypeInspector = FMultiTrackInspector.CreateInstance <FMultiTrackInspector>();

            multiTypeInspector.SetObjects(_objects.ToArray());
            return(multiTypeInspector);
        }
        public virtual void Refresh()
        {
            _objects.Clear();

            _allSameType = true;

            for (int i = 0; i != _editors.Count; ++i)
            {
                if (!_editors[i].IsSelected)
                {
                    _editors[i].OnSelect();
                }

                FOBJECT obj = (FOBJECT)_editors[i].Obj;
                _objects.Add(obj);

                if (obj.GetType() != _editors[0].Obj.GetType())
                {
                    _allSameType = false;
                }
            }

            if (_inspector != null)
            {
                Editor.DestroyImmediate(_inspector);
            }

            if (_multiTypeInspector != null)
            {
                ScriptableObject.DestroyImmediate(_multiTypeInspector);
            }

            if (_objects.Count > 0)
            {
                if (_allSameType)
                {
                    _inspector = Editor.CreateEditor(_objects.ToArray());
                }
                else
                {
                    _multiTypeInspector = CreateMultiTypeInspector();
                }
            }

            _isDirty = false;
        }