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

MenuItem Constructor

Объявление

public MenuItem(string itemName);

public MenuItem(string itemName, bool isValidateFunction);

public MenuItem(string itemName, bool isValidateFunction, int priority);

Параметры

itemName itemName – это элемент меню, представленный в виде имени пути. Например, пункт меню может быть "GameObject/Do Something".
isValidateFunction Если isValidateFunction имеет значение true, это функция проверки, которая будет вызываться перед вызовом функции меню с тем же itemName.
priority Порядок отображения пунктов меню.

Описание

Создает пункт меню и вызывает следующую за ним статическую функцию при выборе пункта меню.

MenuItem — это атрибут, предшествующий функции скрипта. Благодаря этому функция появляется в системе меню Unity. Расположение меню определяется аргументом itemName.

isValidateFunction используется для создания функции MenuItem, которая будет выполняться перед функцией скрипта с тем же itemName. Второй аргумент является логическим. Если для этого аргумента задано значение true, связанная функция будет помечена как вызываемая перед выполнением второй функции скрипта. Эта вторая функция скрипта с тем же itemName будет выполнена следующей.

priority определяет порядок следующей функции скрипта в системе меню. Целочисленное значение сравнивается со значениями других функций скрипта. Если целочисленное значение больше других значений, функция скрипта MenuItem будет помещена в конец списка. Значение priority также можно использовать для управления списком функций скрипта по группам. Пример ниже на этой странице описывает больше об этой функции.

Следующий пример скрипта добавляет две функции в систему меню примера.

using UnityEngine; using UnityEditor; using System.Collections; public class ExampleClass : MonoBehaviour { // Add Example1 into a new menu list [MenuItem("Example/Example1", false, 100)] public static void Example1() { print("Example/Example1"); } // Add Example2 into the same menu list [MenuItem("Example/Example2", false, 100)] public static void Example2() { print("Example/Example2"); } }

В следующем простом примере показано, как в меню Пример могут быть две записи, разделенные разделительной линией. Это происходит, когда аргумент priority разделен более чем на 10. (Однако см. следующее описание.)

using UnityEngine; using UnityEditor; using System.Collections; public class ExampleClass : MonoBehaviour { // Add Example1 has priority of 100 [MenuItem("Example/Example1", false, 100)] public static void Example1() { print("Example/Example1"); } // Example2 has a priority of 111 which is 11 more than Example1. // This will cause a divider to be created. [MenuItem("Example/Example2", false, 111)] public static void Example2() { print("Example/Example2"); } }

Примечание. Считается, что число десять или больше создает разделитель в меню. Однако, как показано в приведенном выше примере, разница между функциями сценария должна иметь priority, разделенный 11 или более. Вот почему в предыдущем примере значение равно 100, а в одном — 111. При изменении 111 на 110 разделитель не возникает.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3