VisualShaderNodeCustom
Успадковує: VisualShaderNode < Resource < RefCounted < Object
Віртуальний клас для визначення користувацького VisualShaderNode для використання в редакторі Visual Shader.
Опис
Успадкувавши цей клас, ви можете створити спеціальний аддон сценарію VisualShader, який буде автоматично додано до Visual Shader Editor. Поведінка VisualShaderNode визначається перевизначенням наданих віртуальних методів.
Щоб вузол було зареєстровано як аддон редактора, ви повинні використати анотацію @tool і надати class_name для вашого спеціального сценарію. Наприклад:
@інструмент
extends VisualShaderNodeCustom
class_name VisualShaderNodeNoise
Посібники
Методи
_get_category() virtual const |
|
_get_code(input_vars: Array[String], output_vars: Array[String], mode: Mode, type: Type) virtual const |
|
_get_default_input_port(type: PortType) virtual const |
|
_get_description() virtual const |
|
_get_func_code(mode: Mode, type: Type) virtual const |
|
_get_global_code(mode: Mode) virtual const |
|
_get_input_port_count() virtual const |
|
_get_input_port_default_value(port: int) virtual const |
|
_get_input_port_name(port: int) virtual const |
|
_get_input_port_type(port: int) virtual const |
|
_get_name() virtual const |
|
_get_output_port_count() virtual const |
|
_get_output_port_name(port: int) virtual const |
|
_get_output_port_type(port: int) virtual const |
|
_get_property_count() virtual const |
|
_get_property_default_index(index: int) virtual const |
|
_get_property_name(index: int) virtual const |
|
_get_property_options(index: int) virtual const |
|
_get_return_icon_type() virtual const |
|
_is_available(mode: Mode, type: Type) virtual const |
|
_is_highend() virtual const |
|
get_option_index(option: int) const |
Описи методів
String _get_category() virtual const 🔗
Зазначте цей метод, щоб визначити шлях до асоційованої користувальницької вершини у діалоговому вікні редактора Visual Shader Editor. Шлях може виглядати як "MyGame/MyFunctions/Noise".
Захищаючи цей метод optional. Якщо не перейдиден, вузол буде подано під категорію «Додатки».
String _get_code(input_vars: Array[String], output_vars: Array[String], mode: Mode, type: Type) virtual const 🔗
Перевизначте цей метод, щоб визначити фактичний код шейдера пов'язаного користувацького вузла. Код шейдера має повертатися як рядок, який може мати кілька рядків (для зручності можна використовувати багаторядкову рядкову конструкцію """).
Масиви input_vars та output_vars містять рядкові назви різних вхідних та вихідних змінних, як визначено віртуальними методами _get_input_* та _get_output_* у цьому класі.
Вихідним портам можна присвоїти значення в коді шейдера. Наприклад, return output_vars[0] + " = " + input_vars[0] + ";".
Ви можете налаштувати згенерований код на основі mode та/або type шейдера.
Визначення цього методу є обов'язковим.
int _get_default_input_port(type: PortType) virtual const 🔗
Зазначте цей метод, щоб визначити вхідний порт, який повинен бути підключений за замовчуванням, коли цей вузол створюється в результаті перетягування з'єднання з існуючого вузла в порожній простір на графі.
Захищаючи цей метод optional. Якщо не перейдиден, з'єднання буде створене до першого дійсного порту.
String _get_description() virtual const 🔗
Зазначте цей метод, щоб визначити опис асоційованої користувальницької вершини в діалоговому вікні редактора Visual Shader Editor.
Захищаючи цей метод optional.
String _get_func_code(mode: Mode, type: Type) virtual const 🔗
Перевизначте цей метод, щоб додати код шейдера на початок кожної функції шейдера (один раз). Код шейдера має повертатися як рядок, який може мати кілька рядків (для зручності можна використовувати багаторядкову рядкову конструкцію """).
Якщо є кілька користувацьких вузлів різних типів, які використовують цю функцію, порядок кожної вставки не визначено.
Ви можете налаштувати згенерований код на основі шейдера mode та/або type.
Визначення цього методу є необов'язковим.
String _get_global_code(mode: Mode) virtual const 🔗
Перевизначте цей метод, щоб додати код шейдера поверх глобального шейдера, щоб визначити власну стандартну бібліотеку методів повторного використання, змінних, констант, уніформ тощо. Код шейдера має повертатися як рядок, який може мати кілька рядків (для зручності можна використовувати багаторядкову рядкову конструкцію """).
Будьте обережні з цією функціональністю, оскільки вона може спричинити конфлікти імен з іншими користувацькими вузлами, тому обов'язково надайте визначеним сутностям унікальні імена.
Ви можете налаштувати згенерований код на основі режиму параметрів шейдера mode.
Визначення цього методу є необов'язковим.
int _get_input_port_count() virtual const 🔗
Надіславши цей метод, щоб визначити кількість вхідних портів пов'язаного користувацького вузла.
Захищаючи цей метод **потрібно **. Якщо не перейдиден, вузол не має вхідних портів.
Variant _get_input_port_default_value(port: int) virtual const 🔗
Зазначте цей метод, щоб визначити значення за замовчуванням для вказаного вхідного порту. Використовуйте це над VisualShaderNode.set_input_port_default_value().
Захищаючи цей метод **потрібно **. Якщо не перейдиден, вузол не має значення за замовчуванням для їх вхідних портів.
String _get_input_port_name(port: int) virtual const 🔗
Надіславши цей метод, щоб визначити імена вхідних портів асоційованої користувальницької вершини. Назви використовуються як для вхідних слотів в редакторі, так і як ідентифікатори в коді шейдера, і пропускаються в input_vars масив _get_code().
Захищаючи цей метод optional, але рекомендується. Якщо не перейдиден, вхідні порти названі "in" + str(port).
PortType _get_input_port_type(port: int) virtual const 🔗
Перевизначте цей метод, щоб визначити повернений тип кожного вхідного порту пов'язаного користувацького вузла.
Визначення цього методу є необов'язковим, але рекомендованим. Якщо його не перевизначити, вхідні порти повертатимуть тип VisualShaderNode.PORT_TYPE_SCALAR.
String _get_name() virtual const 🔗
Зазначте цей метод, щоб визначити ім'я асоційованого користувацького вузла в діалоговому вікні та графі Visual Shader Editor.
Захищаючи цей метод optional, але рекомендується. Якщо не перейдиден, вузол буде названий як "Незрівняний".
int _get_output_port_count() virtual const 🔗
Зазначте цей метод, щоб визначити кількість вихідних портів асоційованої користувальницької вершини.
Захищаючи цей метод **потрібно **. Якщо не перейдиден, вузол не має вихідних портів.
String _get_output_port_name(port: int) virtual const 🔗
Надіславши цей метод, щоб визначити імена вихідних портів відповідного вузла. Назви використовуються як для вихідних слотів в редакторі, так і як ідентифікатори в коді шейдера, і пропускаються в вивод_vars масив _get_code().
Захищаючи цей метод optional, але рекомендується. Якщо не перейдиден, вихідні порти названі "out" + str(port).
PortType _get_output_port_type(port: int) virtual const 🔗
Перевизначте цей метод, щоб визначити повернений тип кожного вихідного порту пов'язаного користувацького вузла.
Визначення цього методу є необов'язковим, але рекомендованим. Якщо його не перевизначити, вихідні порти повертатимуть тип VisualShaderNode.PORT_TYPE_SCALAR.
int _get_property_count() virtual const 🔗
На відміну від цього способу визначення кількості властивостей.
Захищаючи цей метод optional.
int _get_property_default_index(index: int) virtual const 🔗
Зазначте цей метод для визначення індексу за замовчуванням майна відповідного вузла.
Захищаючи цей метод optional.
String _get_property_name(index: int) virtual const 🔗
Зазначте цей метод, щоб визначити імена майна відповідного вузла.
Захищаючи цей метод optional.
PackedStringArray _get_property_options(index: int) virtual const 🔗
Визначте цей метод, щоб визначити параметри всередині випадаючого списку майно асоційованого користувацького вузла.
Захищаючи цей метод optional.
PortType _get_return_icon_type() virtual const 🔗
Зазначте цей метод, щоб визначити значок повернення асоційованого користувацького вузла в діалоговому вікні редактора Visual Shader Editor.
Захищаючи цей метод optional. Якщо не перейдиден, не відображається значок повернення.
bool _is_available(mode: Mode, type: Type) virtual const 🔗
Перевизначте цей метод, щоб вузол не був видимим у діалоговому вікні члена для певного mode та/або type.
Визначення цього методу є необов'язковим. Якщо не перевизначено, значення true.
bool _is_highend() virtual const 🔗
Зазначте цей метод, щоб забезпечити високу оцінку в діалоговому вікні членів редактора Visual Shader.
Захищаючи цей метод optional. false.
int get_option_index(option: int) const 🔗
Повертає вибраний індекс опції випадаючого списку в графі. Ви можете використовувати цю функцію для визначення конкретної поведінки в методі _get_code() або _get_global_code().