diff --git a/Editor/Inspector/DragAndDropManipulator.cs b/Editor/Inspector/DragAndDropManipulator.cs index 51e99e89..0d3de862 100644 --- a/Editor/Inspector/DragAndDropManipulator.cs +++ b/Editor/Inspector/DragAndDropManipulator.cs @@ -12,6 +12,8 @@ namespace nadena.dev.modular_avatar.core.editor public T TargetComponent { get; set; } + protected virtual bool AllowKnownObjects => true; + private Transform _avatarRoot; private GameObject[] _draggingObjects = Array.Empty(); @@ -48,7 +50,7 @@ namespace nadena.dev.modular_avatar.core.editor var knownObjects = TargetComponent.GetObjectReferences().Select(x => x.Get(TargetComponent)).ToHashSet(); _draggingObjects = DragAndDrop.objectReferences.OfType() - .Where(x => !knownObjects.Contains(x)) + .Where(x => AllowKnownObjects || !knownObjects.Contains(x)) .Where(x => RuntimeUtil.FindAvatarTransformInParents(x.transform) == _avatarRoot) .Where(FilterGameObject) .ToArray(); @@ -94,7 +96,10 @@ namespace nadena.dev.modular_avatar.core.editor .ToArray()); } - protected abstract bool FilterGameObject(GameObject obj); + protected virtual bool FilterGameObject(GameObject obj) + { + return true; + } protected abstract void AddObjectReferences(AvatarObjectReference[] references); } diff --git a/Editor/Inspector/ObjectToggle/ObjectSwitcherEditor.cs b/Editor/Inspector/ObjectToggle/ObjectSwitcherEditor.cs index 91d70909..999f596c 100644 --- a/Editor/Inspector/ObjectToggle/ObjectSwitcherEditor.cs +++ b/Editor/Inspector/ObjectToggle/ObjectSwitcherEditor.cs @@ -55,10 +55,7 @@ namespace nadena.dev.modular_avatar.core.editor.ShapeChanger public DragAndDropManipulator(VisualElement targetElement, ModularAvatarObjectToggle targetComponent) : base(targetElement, targetComponent) { } - protected override bool FilterGameObject(GameObject obj) - { - return true; - } + protected override bool AllowKnownObjects => false; protected override void AddObjectReferences(AvatarObjectReference[] references) {