Перейти к содержимому

За что отвечает вкладка hierarchy в unity

  • автор:

За что отвечает вкладка hierarchy в unity

Иерархия ( Hierarchy ) содержит все объекты( GameObject ) в текущей сцене. Некоторые из них являются прямыми экземплярами файлов ассетов, таких как 3D-модели, а другие — экземпляры префабов, пользовательских объектов, из которых состоит большая часть вашей игры. Вы можете выбрать объекты в иерархии, и перетащить один объект на другой, для создания родительской связи( Parenting ) (см. ниже). При добавлении и удалении объектов в сцене, они также будут появляться и исчезать из Иерархии.

Unity использует концепцию под названием Parenting . Для того, чтобы сделать любой GameObject дочерним для другого, перетащите желаемый дочерний объект на желаемый родительский в иерархии. Дочерний объект будет наследовать перемещение и повороты своего родителя. Вы можете использовать раскрывающую стрелку родительского объекта для того, чтобы, при необходимости, показать или скрыть его детей.

Два объекта без родителей Один объект стал родителем для другого

Чтобы узнать больше о parenting, смотрите страницу компонента Transform.

Alphanumeric Sorting

The order of GameObjects in the Hierarchy window can be changed into alphanumeric order. This mode can be enabled using the Edit->Preferences menu (Windows) or Unity->Preferences menu (Mac) which launches the Unity Preferences window. The “Enable Alpha Numeric Sorting” can be ticked. Once this is made the order of the GameObjects in the Hierarchy can be made into alphanumberic sorting. A new icon appears at the top right-hand side of the Hierarchy window. A drop-down appears which lets you choose Alphabetic or Transform sort.

Multi-Scene Editing

It is possible to have more than one Scene open in the Hierarchy at the same time. To find out more about this, see the Multi Scene Editing page.

Трансформации

Компонент Transform (трансформация) используется для хранения значений позиции, вращения, размеров и состояния наследования GameObject’а, потому он очень важен. К GameObject’у всегда добавлен компонент Transform — его невозможно удалить или создать GameObject без него.

Редактирование трансформаций

Компоненты Transform управляются в 3D пространстве по осям X, Y, и Z, или в 2D пространстве просто по X и Y. В Unity эти оси представлены красным, зелёным и синим цветами соответственно.

Tramsform c цветными осями

Transform может быть изменён в окне Scene или путём изменения параметров в инспекторе. В сцене вы можете изменять Transform используя инструменты Translate, Rotate и Scale (двигать, вращать и масштабировать). Эти инструменты расположены в верхнем левом углу редактора Unity.

Инструменты View, Translate, Rotate и Scale

Эти инструменты можно применить к любому объекту в сцене. Когда вы кликнете на объект, вы увидите, что у объекта появится гизмо инструмента. Вид гизмо зависит от выбранного инструмента.

Гизмо Transfromа

Когда вы нажмёте на одной из трёх осей гизмо и потянете, вы заметите, что её цвет изменится на жёлтый. По мере движения мыши, вы увидите как объект будет двигаться, вращаться или менять размер соответственно выбранной оси. Когда вы отпускаете кнопку мыши, ось остаётся выделенной. Если вы впоследствии будете двигать мышь с зажатым колёсиком, то будет использована последняя выбранная ось, независимо от позиции курсора мыши.

Transfrom с выделенной (жёлтой) осью X

Для режима перемещения есть дополнительная опция — перемещение объекта в отдельной плоскости (другими словами, позволяет перемещать объект в двух осях сразу, не затрагивая третью). Три маленьких цветных квадрата вокруг центра гизмо перемещения активируют фиксацию для каждой из плоскостей; цвета соответствуют оси, которая будет зафиксирована, если нажать на квадрате (например, синий квадрат фиксирует ось Z).

Наследование

Наследование — один из самых важных концептов, который следует понимать при использовании Unity. Когда GameObject является родительским для другого объекта, дочерний GameObject будет двигаться, вращаться и менять размер в той же степени, что и родительский объект. Вы можете представлять наследование как связь между вашими руками и вашим телом; когда ваше тело движется, то ваши руки также двигаются вместе с ним. Дочерние объекты могут иметь и свои дочерние объекты и так далее. Таким образом, ваши ладони могут считаться “детьми” ваших рук, а у каждой ладони есть несколько пальцев и т.д. Любой объект может иметь несколько “детей”, но только одного родителя. Эти многоуровневые связи родители-дети формируют иерархию трансформаций. Объект на самом верху иерархии (т.е. единственный объект, у которого нет родителя) известен как root (корень).

Вы можете создать родительский объект перетягиванием любого GameObject’а в окне Hierarchy на другой объект. Это создаст связь родительский-дочерний между двумя игровыми объектами.

Пример родительской иерархии. Объекты с раскрывающимися стрелками слева от их имён являются родительскими.

Учтите, что значения Transform в инспекторе для любого дочернего объекта показаны относительно значений Transform родительского объекта. Эти значения известны как локальные координаты . Возвращаясь к аналогии тела и рук, положение вашего тела может изменяться по мере ходьбы, но ваши руки будут присоединены в одном и том же месте относительно тела. Для построения сцены обычно достаточно работать с локальными координатами для дочерних объектов, но во время игрового процесса зачастую полезно найти их точное положение в мировом пространстве или их мировые координаты . API скриптинга для компонента Transform имеет отдельные настройки для локальных и мировых координат.

Проблемы производительности и ограничения неравномерного (Non-Uniform) масштабирования

Неравномерное масштабирование (Non-uniform Scaling) — это когда параметр Scale в Transform имеет разные значения для x, y, и z; например (2, 4, 2). И наоборот, при равномерном масштабировании, x, y и z имеют одинаковые значения; например (3, 3, 3). Неравномерное масштабирование может быть полезно в некоторых особых случаях, но вам лучше стараться этого избегать, поскольку это замедляет рендеринг графики. Также могут появиться некоторые странности, которых не бывает при равномерном масштабировании:-

  • Некоторые компоненты не имеют полной поддержки неравномерного масштабирования. Например у некоторых компонентов есть круглый или сферический элемент с заданным параметром radius . Среди таких компонентов есть Sphere Collider , Capsule Collider , Light и Audio Source . В подобных случаях круглая форма не станет эллиптической под влиянием неравномерного масштабирования, а просто останется круглой.
  • Если у дочернего объекта есть неравномерно отмасштабированный родитель, и он (дочерний объект) повёрнут относительно родителя, он может стать перекошенным или “сдвинутым”. Есть компоненты, которые поддерживают простое неравномерное масштабирование, но некорректно работают такими перекосами. Например, перекошенный Box Collider не будет точно совпадать с формой меша.
  • По причинам производительности, масштаб дочернего объекта неравномерно отмасштабированного родителя не будет автоматически обновлён при вращении. В результате, форма дочернего объекта может резко измениться, после того как масштаб уже обновился, например, после отделения дочернего объекта от родителя.

Важность масштаба

Масштаб Transform’а определяет разницу между размером меша в приложении для моделирования и размером этого же меша в Unity. Размер меша в Unity (он же — масштаб Transform’a) очень важен, особенно во время физических симуляций. По умолчанию, физический движок предполагает, что одна единица меры в мировом пространстве соответствует одному метру. Если объект очень большой, может получиться, что он будет падать “в замедленном времени”; симуляция на самом деле правильная, т.к. по сути, вы смотрите с большого расстояния на то, как падает очень большой объект.

Есть 3 фактора которые могут повлиять на масштаб вашего объекта:

  • Размер вашего меша в вашем приложении для 3D моделирования.
  • Коэффициент Mesh Scale Factor устанавливаемый в настройках импорта объекта ( Import Settings ).
  • Значение параметра Scale компонента Transfrom.

В идеале, вам не надо настраивать параметр Scale вашего объекта в компоненте Transform. Лучшим вариантом является создание моделей реалистичного размера, таким образом, чтобы вам не пришлось менять масштаб. Следующим лучшим вариантом является настройка масштаба в настройках Import Settings импортированного меша, для конкретного меша. Некоторые оптимизации производятся на основе размера при импорте, и создание экземпляра объекта с изменённым значением масштаба может снизить производительность. Для дополнительной информации, прочитайте раздел об оптимизации масштаба на странице справки по компоненту Rigidbody.

Подсказки по работе с компонентами Transform

  • При родительстве Transform’а, будет полезным установить координаты родителя на , прежде чем добавлять дочерний объект. Это значит, что местные координаты для дочернего объекта будут равны мировым координатам и таким образом будет проще убедиться, что дочерний объект находится в нужной позиции.
  • Particle Systems (системы частиц) не подвержены влиянию параметра Scale у компонента Transfrom. Чтобы масштабировать систему частиц, вам надо изменить параметры в разделах системы частиц Emitter, Animator и Renderer.
  • Если вы используете Rigidbodies для симуляции физики, то убедитесь, что прочитали раздел про параметр Scale на странице Rigidbody.
  • Вы можете поменять цвета осей Transform’а (и других элементов интерфейса) в настройках ( Menu: Unity > Preferences и затем выбрать панель Colors & keys ).
  • Changing the Scale affects the position of child transforms. For example scaling the parent to (0,0,0) will position all children at (0,0,0) relative to the parent.

Описание интерфейса главного окна Unity. Вкладка Scene, вкладка Game и панель инструментов.

Каждая часть имеет собственное предназначение, но все они играют важную роль в цикле создания игры:

  • Просмотр файлов выполняется на вкладке Project.
  • Объекты трехмерной сцены просматриваются на вкладке Scene.
  • Панель инструментов предоставляет элементы управления сценой.
  • На вкладке Hierarchy путем перетаскивания можно менять связь между объектами.
  • Панель Inspector отображает сведения о выделенных объектах и показывает свя занный с ними код.
  • Тестирование результатов осуществляется на вкладке Game, а сообщения об ошибках появляются на вкладке Console

Наиболее заметная часть интерфейса — расположенная в центре вкладка Scene. Именно здесь мы можем видеть, как выглядит мир игры, и перемещать объекты по сцене. Сеточные объекты в сцены, как им и положено, представлены в виде сеток. Можно наблюдать и ряд других объектов, представленных различными значками и цветными линиями. Это камеры, источники света, источники звука, области столкновений и т. п. Разумеется, эта картинка отличается от того, что будет показываться в процессе игры, — рассматривать сцену можно, не ограниваясь игровым представлением.

Игровое представление отображается на вкладке Game, расположенной рядом с вклад кой Scene (переход с вкладки на вкладку осуществляется в верхнем левом углу области отображения). Интерфейс содержит и другие элементы, сконструированные подобным образом; для изменения отображаемого ими содержимого достаточно перейти на другую вкладку. После запуска игры начинает отображаться игровое представление. При этом переходить на вкладку Game не нужно, переключение выполняется автоматически.

Для запуска игры достаточно нажать кнопку Play над вкладкой Scene. Вся верхняя часть интерфейса занята так называемой панелью инструментов (Toolbar), и кнопка Play находится как раз в центре этой панели. На рис. 1.10 из всего интерфейса редактора для наглядности оставлена только панель инструментов с расположенными под ней вкладками Scene/Game.

Работа с мышью и клавиатурой. Навигация. Преобразование объектов. Вкладка Hierarchy, Project, Console и панель Inspector

Навигация в сценах осуществляется с помощью мыши и набора клавиш-модификаторов, влияющих на результат манипуляций с мышью. Главные операции — это перемещение (move), облет (orbit) и масштабирование (zoom).

Преобразование объектов также осуществляется посредством трех вышеупомянутых операций. Более того, каждому типу навигации соответствует собственное преобразование:

  • перенос (translate),
  • поворот (rotate)
  • и изменение размеров (scale).

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

  • перемещение будет соответствовать переносу камеры,
  • облет — повороту камеры,
  • а масштабирование — изменению размеров камеры.

Переход между этими операциями осуществляется не только кнопками панели инструментов, но и нажатием клавиш W, E и R. При входе в режим преобразования у выделенного объекта появляются цветные стрелки или окружности. Это габаритный контейнер преобразования (transform gizmo), перетаскивание которого меняет вид объекта.

Рядом с кнопками преобразований находится кнопка инструмента Rect, позволяющая перейти к работе с двумерной графикой и объединяющая в себе операции переноса, поворота и масштабирования. В трехмерном пространстве за каждую из этих операций отвечает свой инструмент, но в двумерном пространстве они объединены, так как у нас становится меньше на одно измерение. В Unity существует также набор клавиатурных комбинаций для ускорения выполнения различных операций.

На левой стороне экрана примостилась вкладка Hierarchy, в то время как правую заняла панель Inspector (рис. 1.12). Вкладка Hierarchy содержит список всех объектов сцены в виде древовидной структуры, ветки которой вложены друг в друга в соответствии с иерархическими связями между этими объектами. По сути, эта вкладка позволяет выделять объекты по именам, избавляя от необходимости искать в сцене нужный объект, чтобы выделить его щелчком. Иерархические связи объединяют объекты в группы. Визуально это оформлено в виде папок и дает возможность за одну операцию переместить целую группу объектов.

На панели Inspector отображаются данные выделенного объекта. Выделите любой объект и обратите внимание, как изменится вид панели Inspector. Отображаемая информация по большей части представляет собой список компонентов, причем вы можете как добавлять к объектам новые компоненты, так и удалять существующие. Все игровые объекты содержат по крайней мере один компонент — Transform, поэтому на панели Inspector всегда будут отображаться хотя бы сведения о положении и ориентации выделенного объекта. У многих объектов вы увидите целые списки компонентов, в том числе связанные с этими объектами сценарии.

Нижнюю часть экрана занимают показанные на рис. 1.13 вкладки Project и Console. В данном случае мы видим пример такой же организации элементов интерфейса, как и у вкладок Scene и View, что легко позволяет переходить от одного представления к другому. На вкладке Project отображаются все ресурсы проекта (графические фрагменты, код и т. п.). В левой части этой вкладки находится список папок проекта; при выделении папки справа появляются находящиеся в ней файлы. По сути, это такой же список, как и на вкладке Hierarchy, но если эта вкладка показывает перечень объектов сцены, то на вкладке Project представлены файлы, не включенные ни в одну конкретную сцену (в том числе и сами файлы сцен — сохраненная сцена появляется на вкладке Project!).

Вкладка Console представляет собой место вывода связанных с кодом сообщений. Иногда это намеренно вставленные в программу сообщения отладчика, иногда Unity посылает сообщения об ошибке, обнаружив неполадку в написанном сценарии.

Окно Hierarchy

Представление окна иерархии по умолчанию при открытии нового проекта Unity

В окне Hierarchy отображаются все GameObject фундаментальный объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
Смотреть в Словарь в Сцене, например модели, Камеры или Prefabs Тип ресурса, который позволяет хранить GameObject с компонентами и свойствами. Префаб действует как шаблон, из которого вы можете создавать новые экземпляры объектов на сцене. Подробнее
См. в Словарь . Вы можете использовать окно Hierarchy для сортировки и группировки игровых объектов, которые вы используете в сцене. Когда вы добавляете или удаляете игровые объекты в представлении «Сцена», вы также добавляете или удаляете их из окна «Hierarchy».

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

Воспитание детей

Unity использует концепцию родительско-дочерних иерархий или родительских элементов для группировки игровых объектов. Объект может содержать другие игровые объекты, которые наследуют его свойства. Вы можете связать игровые объекты вместе, чтобы помочь перемещать, масштабировать или преобразовывать коллекцию игровых объектов. Когда вы перемещаете объект верхнего уровня или родительский игровой объект, вы также перемещаете все дочерние игровые объекты.

Вы также можете создавать вложенные игровые объекты родитель-потомок. Все вложенные объекты по-прежнему являются потомками исходного родительского игрового объекта или корневого игрового объекта.

Дочерние игровые объекты наследуют движение и вращение родительского игрового объекта. Чтобы узнать больше об этом, см. документацию по компоненту Transform компоненту Transform определяет положение, вращение и масштаб каждого объекта в сцене. Каждый GameObject имеет Transform. Подробнее
См. в Словарь .

Child 1 и Child 2 являются дочерними GameObjects Parent. Child 3 является дочерним GameObject Child 2 и потомком GameObject Parent..

Организация игровых объектов

Создание новых игровых объектов

Чтобы создать новый GameObject в окне Hierarchy:

  1. Щелкните правой кнопкой мыши пустое место в выбранной сцене.
  2. Выберите игровой объект, который хотите создать.

Вы также можете нажать Ctrl+Shift+N (Windows) или Command+Shift+N (macOS), чтобы создать новый пустой игровой объект.

Примечание. Новые игровые объекты создаются в режиме «переименования» автоматически. Чтобы отключить это поведение, выберите меню «Дополнительно» (⋮) в окне «Hierarchy» и снимите флажок Rename New Objects.

Переключение видимости дочернего игрового объекта

Чтобы переключить видимость дочерних игровых объектов:

  1. Выберите стрелку раскрывающегося списка (►) слева от родительского игрового объекта.
  2. Нажмите Alt, одновременно нажимая стрелку раскрывающегося списка (►), чтобы переключить видимость всех дочерних игровых объектов корневого игрового объекта.
  3. Снова нажмите стрелку раскрывающегося списка (▼), чтобы свернуть все дочерние игровые объекты.

Создание дочерних игровых объектов

Чтобы создать дочерний игровой объект:

Перетащите объект 4 (выбранный) на родительский игровой объект, объект 1 (выделен синим), чтобы создать дочерний игровой объект..

  • Перетащите GameObject на родительский GameObject в иерархии.

Создание родительских игровых объектов

Вы можете добавить новый игровой объект в представление «Hierarchy» в качестве родителя существующих игровых объектов.

Чтобы создать родительский игровой объект:

  1. Щелкните правой кнопкой мыши игровой объект или выберите несколько игровых объектов на одном уровне и щелкните правой кнопкой мыши.
  2. Выберите Create Empty Parent.

Вы также можете нажать Ctrl+Shift+G (Windows) или Command+Shift+G (macOS), чтобы создать родительский игровой объект.

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

Создание родственных игровых объектов

Родственный GameObject — это GameObject с той же иерархией, что и другой дочерний GameObject. Чтобы создать одноуровневый GameObject:

Перетащите Объект 4 (выбранный) между Объектом 2 и Объектом 3 (обозначенным синей горизонтальной линией), чтобы создать одноуровневый GameObject под родительским Объектом GameObject 1 (выделен синим цветом).

  1. Перетащите GameObject выше или ниже существующего GameObject.
  2. Используйте горизонтальную синюю линию, чтобы определить порядок GameObject.

Дублирование игровых объектов

Чтобы дублировать игровые объекты, щелкните правой кнопкой мыши целевой игровой объект и выберите Duplicate.

Вы также можете нажать Ctrl+D (Windows) или Command+D (macOS), чтобы дублировать выбранный игровой объект.

Вставка игровых объектов в качестве дочерних

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

Чтобы вставить GameObject как дочерний:

  1. Щелкните правой кнопкой мыши выбранный игровой объект и выберите Cut или Copy.
  2. Щелкните правой кнопкой мыши предполагаемый родительский игровой объект и выберите Paste as Child.

Вы также можете нажать Ctrl+Shift+V (Windows) или Command+Shift+V (macOS), чтобы вставить GameObject в качестве дочернего.

Организация игровых объектов с родительским элементом по умолчанию

Вы можете сделать любой GameObject в окне Hierarchy «родителем по умолчанию». Когда вы перетаскиваете GameObject в представление «Сцена», Unity автоматически делает этот GameObject дочерним для GameObject, который вы установили в качестве родителя по умолчанию.

Чтобы сделать GameObject родителем по умолчанию:

  1. В окне «Hierarchy» щелкните правой кнопкой мыши игровой объект.
  2. Выберите Set as Default Parent.

При перетаскивании игрового объекта в представление «Сцена» в окне «Hierarchy» дочерний игровой объект располагается ниже родительского игрового объекта по умолчанию. Имя родительского игрового объекта по умолчанию выделено полужирным шрифтом.

На этом изображении Cube GameObject является родителем по умолчанию. Когда пользователь перетаскивает игровой объект «Автомобиль» в представление «Сцена», Unity автоматически делает его дочерним элементом игрового объекта «Куб».

Чтобы удалить родительский статус по умолчанию для GameObject:

  1. В окне «Hierarchy» щелкните правой кнопкой мыши игровой объект.
  2. Выберите Clear Default Parent.

Имя GameObject, которое ранее было родительским по умолчанию, больше не выделено полужирным шрифтом. Когда вы перетаскиваете GameObject в представление «Сцена», он появляется на верхнем уровне в окне «Hierarchy». Другими словами, Unity не делает этот GameObject дочерним по отношению к GameObject, который ранее был родителем по умолчанию.

На этом изображении ни один из игровых объектов в окне Hierarchy не установлен в качестве родителя по умолчанию. Когда пользователь перетаскивает игровой объект Car в окно Scene, Unity добавляет его на верхний уровень иерархии.

Вы можете установить только один родитель по умолчанию для каждой сцены. В окне Hierarchy, если вы установите GameObject в качестве родителя по умолчанию, а затем сделаете другой GameObject в той же сцене родительским по умолчанию, только второй GameObject будет родителем по умолчанию.

Если у вас есть несколько сцен в окне «Hierarchy» и вы устанавливаете родительские объекты по умолчанию в каждой сцене, при перетаскивании игрового объекта в представление «Сцена» Unity делает родительский игровой объект по умолчанию в активной сцене родителем нового игрового объекта.

На этом изображении кубические игровые объекты как в Scene1, так и в Scene2 установлены как родительские по умолчанию. Unity устанавливает куб в Scene1 в качестве родителя игрового объекта Car, потому что Scene1 является активной сценой..

Вы можете установить сочетание клавиш для родительского параметра по умолчанию в менеджере сочетаний клавиш. В окне «Shortcuts» назначьте сочетание клавиш Hierarchy View > Set as Default Parent. Если родительского набора по умолчанию нет, а в окне Hierarchy вы выбираете GameObject, используйте ярлык, чтобы сделать этот GameObject родительским по умолчанию. Когда установлен родительский элемент по умолчанию, используйте ярлык, чтобы удалить родительский статус по умолчанию для любого игрового объекта, у которого он есть.

Настройка видимости и возможности выбора сцены

Нажмите значок видимости сцены, чтобы скрыть и отобразить игровые объекты в представлении сцены Интерактивный взгляд на мир, который вы создаете. Вы используете Scene View для выбора и размещения пейзажей, персонажей, камер, источников света и всех других типов игровых объектов. Подробнее
Просматривать в Словарь без изменения видимости в приложении.

Выберите значок выбора сцены, чтобы переключить возможность выбора игровых объектов в представлении «Сцена» во время редактирования.

Эти элементы управления полезны для работы с большими или сложными сценами, где сложно просмотреть и выбрать определенные игровые объекты.

Значки/переключатели видимости сцены

Дополнительную информацию см. в документации по видимости сцены и выбору сцены.

Сортировка игровых объектов

По умолчанию в окне «Hierarchy» игровые объекты перечислены в порядке их создания. Вы можете перетащить выбранный игровой объект вверх или вниз в сцене, чтобы изменить порядок игровых объектов.

Буквенно-цифровая сортировка

Чтобы отсортировать игровые объекты в алфавитно-цифровом порядке:

  1. Select Edit > Preferences (Windows) or Unity > Preferences (macOS).
  2. Select Enable Alphanumeric Sorting.

При выборе в окне «Hierarchy» появляется значок, позволяющий переключаться между сортировкой Transform (значение по умолчанию) или сортировкой Alphabetical.

Редактирование нескольких сцен

В окне иерархии одновременно может быть открыто несколько сцен. Дополнительную информацию см. на странице Редактирование нескольких сцен.

  • Переключение видимости сцены добавлено в 2019.1
  • Переключение выбора сцены добавлено в 2019.3

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *