Атрибуты переменных и параметров метода
Содержание
Item
Используется для изменения отображаемого имени элементов перечисления (enum), когда enum передается в качестве параметра метода
Пример кода
public class Cube : VarwinObject { public enum CubeColors { [Item(English: "white")] Default, Red, Green, Blue } [Action(English: "Set cube color")] public void SetCubeColor(CubeColors color) { // set color } }
Пример блока
Связка атрибутов UseValueList - Value - ValueList
Используется в случаях, когда в качестве параметра метода передается переменная, не являющаяся перечислением. При этом необходимо предоставить пользователю вместо поля значения выбор из списка предопределенных именованных значений
Для пользователя выглядит точно так же как и выбор из элементов перечисления
UseValueList
Атрибут параметров метода
При объявлении атрибута через запятую перечисляются имена списков, которые необходимо включить в выпадающий список в blockly. Списки определяются с помощью атрибутов [Value]
и [ValueList]
[UseValueList("sizes", "small sizes", "large sizes")]
Пример кода
[Action(English: "Set cube size")] public void SetCubeSize([**UseValueList("sizes", "small sizes","large sizes")**] Vector3 size) { // set size }
Value
Используется для создания именованной переменной
[Value(English:"very small")] public Vector3 VerySmallSize = 0.25f * Vector3.one;
ValueList
Используется для создания именованного списка значений
Следующий код добавляет переменную «very small» к спискам “small sizes” и “sizes”
[ValueList("small sizes", "sizes")] [Value(English:"very small")] public Vector3 VerySmallSize = 0.25f * Vector3.one;
Пример использования связки UseValueList - Value - ValueList
В следующем примере создается несколько именованных переменных, добавляются к различным именованным спискам и создается метод, принимающий в качестве аргумента переменную
С помощью атрибута [UseValueList]
в блокли появляется возможность выбрать переменную из списка
Пример кода
public class Cube : VarwinObject { [ValueList("small sizes", "sizes")] [Value(English:"very small")] public Vector3 VerySmallSize = 0.25f * Vector3.one; [ValueList("small sizes", "sizes")] [Value(English:"small")] public Vector3 SmallSize = 0.5f * Vector3.one; [ValueList("sizes")] [Value(English:"medium")] public Vector3 MediumSize = 1.0f * Vector3.one; [ValueList("large sizes", "sizes")] [Value(English:"large")] public Vector3 LargeSize = 1.5f * Vector3.one; [ValueList("large sizes", "sizes")] [Value(English:"very large")] public Vector3 VeryLargeSize = 2.0f * Vector3.one; [Action(English: "Set cube size")] public void SetCubeSize([UseValueList("sizes", "small sizes", "large sizes")] Vector3 size) { // set size } }
Пример блока
Подробнее Общие свойства атрибутов