Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Editor.OnSceneGUI()

Описание

Позволяет редактору обрабатывать событие в представлении "Сцена".

В OnSceneGUI можно выполнять, например, редактирование сетки, рисование ландшафта или дополнительные приспособления. Если вызывается Event.current.Use(), событие будет "съедено" редактором и не будет использоваться самим представлением сцены.

В Следующие два скрипта OnSceneGUI используются для рисования линий между игровыми объектами. Первый скрипт показывает, как используется OnSceneGUI. В этом скрипте в качестве родителя используется игровой объект. Получается позиция родителя, а затем от нее рисуются линии к игровым объектам, хранящимся в массиве. Для этого используется функция Handles.DrawLine. В документации для Handles.DrawLine есть очень похожий пример.

using UnityEngine; using UnityEditor; [CustomEditor( typeof( DrawLine ) )] public class DrawLineEditor : Editor { // рисовать линии между выбранным игровым объектом // и выбор добавленных игровых объектов void OnSceneGUI() { // получаем выбранный игровой объект DrawLine t = target as DrawLine; if( t == null || t.GameObjects == null ) return; // захватить центр родителя Vector3 center = t.transform.position; // перебираем игровые объекты, добавленные в массив... for( int i = 0; i < t.GameObjects.Length; i++ ) { // ... и провести между ними линию if( t.GameObjects[i] != null ) Handles.DrawLine( center, t.GameObjects[i].transform.position ); } } }

Этот скрипт хранит массив игровых объектов, к которым будет нарисована линия. Этот обычный скрипт просто прикрепляется к игровому объекту, который считается отправной точкой для всех линий.

using UnityEngine; [ExecuteInEditMode] public class DrawLine : MonoBehaviour { // массив игровых объектов, который будет иметь // линия, нарисованная в редакторе Scene public GameObject[] GameObjects; }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3