Как развернуть все игровые и дочерние объекты на всех уровнях глубины иерархии одним нажатием кнопки с помощью скрипта рC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как развернуть все игровые и дочерние объекты на всех уровнях глубины иерархии одним нажатием кнопки с помощью скрипта р

Сообщение Anonymous »

скрипт использует отражение.
он ​​работает почти идеально и расширяет все объекты в иерархии, но по какой-то причине некоторые объекты не расширяются.

Код: Выделить всё

using UnityEngine;
using UnityEditor;
using System.Reflection;

[CustomEditor(typeof(GameObject))]
public class HierarchyExpander : Editor
{
bool isExpanded = false; // Keep track of the current state to toggle

public override void OnInspectorGUI()
{
base.OnInspectorGUI();

if (GUILayout.Button(isExpanded ? "Collapse Hierarchy" : "Expand Hierarchy"))
{
isExpanded = !isExpanded; // Toggle state
ToggleHierarchyExpansion(target as GameObject, isExpanded);
}
}

private void ToggleHierarchyExpansion(GameObject obj, bool expand)
{
System.Type hierarchyWindowType = typeof(Editor).Assembly.GetType("UnityEditor.SceneHierarchyWindow");
EditorWindow hierarchyWindow = EditorWindow.GetWindow(hierarchyWindowType);

MethodInfo expandMethodInfo = hierarchyWindowType.GetMethod("SetExpandedRecursive");
if (expandMethodInfo != null)
{
expandMethodInfo.Invoke(hierarchyWindow, new object[] { obj.GetInstanceID(), expand });
}
else
{
Debug.LogError("Failed to find method 'SetExpandedRecursive'.");
}
}
}
Изображение


Подробнее здесь: https://stackoverflow.com/questions/784 ... vels-in-th
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»