Как я могу получить префаб рут GameObject? - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть скрипт EditorWindow.

Внутри OnGUI:

for (var i = selection.Count - 1; i >= 0; --i)
            {
                var selected = selection[i];

                if (UnityEditor.PrefabUtility.IsPartOfPrefabInstance(selected))
                {
                    var root = selected.GetComponentInParent(typeof(GameObject));
                    PrefabUtility.UnpackPrefabInstance(selected, PrefabUnpackMode.Completely, UnityEditor.InteractionMode.AutomatedAction);
                }
             }

Я хочу найти сборный, частью которого является выбранный. Но это дает мне исключение:

ArgumentException: GetComponent требует, чтобы запрошенный компонент "GameObject" был производным от MonoBehaviour или Component, или являлся интерфейсом.

Основная цель - уничтожить игровой объект, который является частью готового экземпляра. Для этого мне нужно сначала найти игровой объект (выбранный), это предварительно подготовить, распаковать его из сборного, а затем уничтожить.

Но я не могу получить сборник этого.

1 Ответ

0 голосов
/ 05 апреля 2019

Рабочий раствор:

for (var i = selection.Count - 1; i >= 0; --i)
            {
                var selected = selection[i];

                if (UnityEditor.PrefabUtility.IsPartOfPrefabInstance(selected))
                {
                    var root = PrefabUtility.GetOutermostPrefabInstanceRoot(selected);
                    PrefabUtility.UnpackPrefabInstance(root, PrefabUnpackMode.Completely, UnityEditor.InteractionMode.AutomatedAction);
                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...