2016-12-16 6 views
1
private void CheckingSelection() { 
    Transform child = Selection.activeTransform; 
    Transform[] patchesTransform = builder.GetLevelEditorPatchesTransform(); 

    foreach (var parent in patchesTransform) { 
     if (child.IsChildOf(parent) && child != parent) { 
      Debug.Log("Set active " + parent.gameObject); 
      Selection.activeGameObject = parent.gameObject; 
     } 
    } 
} 

Это то, что я делаю, но не выбирает родителя. Что я делаю неправильно?Как выбрать объект в иерархии в Unity с помощью скрипта?

ответ

0

Сделка - это то, как я назвал метод CheckingSelection();

Я добавил этот метод для делегирования Selection.selectionChanged. И я подумал, что это логические вещи, чтобы сделать мою проверку после выбора чего-то. Но он не работал. Это может быть из внутренних вещей Unity, которые блокируют рекурсию или некоторые.

Итак, я добавил метод CheckingSelection() в делегат EditorApplication.update, и он работает.