Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
EditorNode3DGizmoPlugin
Успадковує: Resource < RefCounted < Object
Клас, який використовується редактором, щоб визначити типи Node3D.
Опис
EditorNode3DGizmoPlugin дозволяє визначити новий тип Gizmo. Є два основних способи зробити так: розширення EditorNode3DGizmoPlugin для простих Gizmos, або створення нового типу EditorNode3DGizmoPlugin. Переглянути підручник в документації для отримання більш детальної інформації.
Для використання EditorNode3DGizmoPlugin, зареєструйте його за допомогою редактораPlugin.add_node_3d_gizmo_plugin().
Посібники
Методи
void |
_begin_handle_action(gizmo: EditorNode3DGizmo, handle_id: int, secondary: bool) virtual |
_can_be_hidden() virtual const |
|
_can_commit_handle_on_click() virtual const |
|
void |
_commit_handle(gizmo: EditorNode3DGizmo, handle_id: int, secondary: bool, restore: Variant, cancel: bool) virtual |
void |
_commit_subgizmos(gizmo: EditorNode3DGizmo, ids: PackedInt32Array, restores: Array[Transform3D], cancel: bool) virtual |
_create_gizmo(for_node_3d: Node3D) virtual const |
|
String |
_get_gizmo_name() virtual const |
String |
_get_handle_name(gizmo: EditorNode3DGizmo, handle_id: int, secondary: bool) virtual const |
Variant |
_get_handle_value(gizmo: EditorNode3DGizmo, handle_id: int, secondary: bool) virtual const |
_get_priority() virtual const |
|
Transform3D |
_get_subgizmo_transform(gizmo: EditorNode3DGizmo, subgizmo_id: int) virtual const |
_has_gizmo(for_node_3d: Node3D) virtual const |
|
_is_handle_highlighted(gizmo: EditorNode3DGizmo, handle_id: int, secondary: bool) virtual const |
|
_is_selectable_when_hidden() virtual const |
|
void |
_redraw(gizmo: EditorNode3DGizmo) virtual |
void |
_set_handle(gizmo: EditorNode3DGizmo, handle_id: int, secondary: bool, camera: Camera3D, screen_pos: Vector2) virtual |
void |
_set_subgizmo_transform(gizmo: EditorNode3DGizmo, subgizmo_id: int, transform: Transform3D) virtual |
PackedInt32Array |
_subgizmos_intersect_frustum(gizmo: EditorNode3DGizmo, camera: Camera3D, frustum_planes: Array[Plane]) virtual const |
_subgizmos_intersect_ray(gizmo: EditorNode3DGizmo, camera: Camera3D, screen_pos: Vector2) virtual const |
|
void |
add_material(name: String, material: StandardMaterial3D) |
void |
create_handle_material(name: String, billboard: bool = false, texture: Texture2D = null) |
void |
create_icon_material(name: String, texture: Texture2D, on_top: bool = false, color: Color = Color(1, 1, 1, 1)) |
void |
create_material(name: String, color: Color, billboard: bool = false, on_top: bool = false, use_vertex_color: bool = false) |
StandardMaterial3D |
get_material(name: String, gizmo: EditorNode3DGizmo = null) |
Описи методів
void _begin_handle_action(gizmo: EditorNode3DGizmo, handle_id: int, secondary: bool) virtual 🔗
There is currently no description for this method. Please help us by contributing one!
Зазначте цей метод, щоб визначити, чи можна використовувати gizmos. true, якщо не перейде.
bool _can_commit_handle_on_click() virtual const 🔗
Override this method to define whether the gizmos should commit when the final handle position is the same as the initial one. Returns false if not overridden.
void _commit_handle(gizmo: EditorNode3DGizmo, handle_id: int, secondary: bool, restore: Variant, cancel: bool) virtual 🔗
Надіславши цей метод, щоб зробити ручку редаговано (ручки повинні були попередньо додані EditorNode3DGizmo.add_handles() під час _redraw()). Це, як правило, означає створення UndoRedo дії для зміни, використовуючи значення поточної ручки як "до" і restore аргумент як "ундо".
Якщо аргумент скасувати true, значення edit повинна бути безпосередньо встановлена, без будь-яких UndoRedo дії.
restore аргумент true при виконанні ручок вторинна (див. EditorNode3DGizmo.add_handles() для отримання додаткової інформації).
Зателефоновано для активного Gizmos цього плагіна.
void _commit_subgizmos(gizmo: EditorNode3DGizmo, ids: PackedInt32Array, restores: Array[Transform3D], cancel: bool) virtual 🔗
Зазначте цей метод, щоб зробити групу субгізмос, які редаговані (див. _subgizmos_intersect_ray() і _subgizmos_intersect_frustum()). Це, як правило, означає створення UndoRedo дії для зміни, використовуючи поточні перетворення як "до" і restores трансформується як "ундо".
Якщо аргумент cancel true, restores трансформатори повинні бути безпосередньо встановленими, без будь-яких UndoRedo дії. Як і з усіма методами підгізмо, трансформуються в локальну космічну повагу Node3D. Зателефоновано для активного Gizmos цього плагіна.
EditorNode3DGizmo _create_gizmo(for_node_3d: Node3D) virtual const 🔗
Перевизначте цей метод, щоб повернути спеціальний EditorNode3DGizmo для 3D-вузлів за вашим вибором, повернути null для решти вузлів. Дивіться також _has_gizmo().
String _get_gizmo_name() virtual const 🔗
На відміну від цього способу, щоб забезпечити ім'я, яке з'явиться в меню видимості Gizmo.
String _get_handle_name(gizmo: EditorNode3DGizmo, handle_id: int, secondary: bool) virtual const 🔗
Надіславши цей метод для забезпечення імен ручок gizmo. secondary аргумент true, коли потрібна ручка вторинна (див. редакторNode3DGizmo.add_handles() для отримання додаткової інформації). Зателефоновано для активного Gizmos цього плагіна.
Variant _get_handle_value(gizmo: EditorNode3DGizmo, handle_id: int, secondary: bool) virtual const 🔗
Надіславши цей метод для повернення поточного значення ручки. Ця вартість буде запитана при старті редагування та використовується як restore аргумент _commit_handle().
secondary аргумент true, коли потрібна ручка вторинна (див. EditorNode3DGizmo.add_handles() для отримання додаткової інформації).
Зателефоновано для активного Gizmos цього плагіна.
int _get_priority() virtual const 🔗
Зазначте цей метод, щоб встановити пріоритет Gizmo. Gizmos з вищим пріоритетом має прецедентність при обробці вводів, таких як ручка або підгізмос вибір.
Всі вбудовані редактори Gizmos повертає пріоритет -1. Якщо не перейдиден, цей метод повернеться 0, що означає користувацькі гізмос автоматично отримає більший пріоритет, ніж вбудовані гізмос.
Transform3D _get_subgizmo_transform(gizmo: EditorNode3DGizmo, subgizmo_id: int) virtual const 🔗
На відміну від цього способу повернення поточного перетворення підгізмо. Як з усіма методами підгізмо, трансформатор повинен бути в місцевому просторі по відношенню до Node3D. Ця трансформація буде запитана при старті редагування та використання в restore аргумент в метод_commit_subgizmos. Зателефоновано для активного Gizmos цього плагіна.
bool _has_gizmo(for_node_3d: Node3D) virtual const 🔗
На відміну від цього методу, щоб визначити, які вузли Node3D мають gizmo з цього плагіна. Колись вузол Node3D додається до сцени, цей метод називається, якщо він повертає true вершина отримує загальний EditorNode3DGizmo і додається до цього списку плагінів активного gizmos.
bool _is_handle_highlighted(gizmo: EditorNode3DGizmo, handle_id: int, secondary: bool) virtual const 🔗
Перевизнайте цей метод для повернення true, коли будь-яка ручка повинна бути виділена в редакторі. secondary аргумент true, коли потрібна ручка вторинна (див. редакторNode3DGizmo.add_handles() для отримання додаткової інформації). Зателефоновано для активного Gizmos цього плагіна.
На відміну від цього методу, щоб визначити, чи слід вибрати Node3D з цим гізмо, навіть якщо гизмо приховано.
void _redraw(gizmo: EditorNode3DGizmo) virtual 🔗
На відміну від цього способу, щоб додати всі мікроелементи, коли запитується оновлення gizmo. Зазвичай, щоб викликати EditorNode3DGizmo.clear() на початку цього способу, а потім додати візуальні елементи в залежності від властивостей вузла.
void _set_handle(gizmo: EditorNode3DGizmo, handle_id: int, secondary: bool, camera: Camera3D, screen_pos: Vector2) virtual 🔗
Зазначте цей метод, щоб оновити властивості вершини, коли користувач перетягує рукоятку Gizmo (попередньо додано з EditorNode3DGizmo.add_handles()). Надана screen_pos є позиція мишки в координатах екрана і camera може бути використана для перетворення його в промені.
secondary аргумент true, коли редагована ручка вторинна (див. редакторNode3DGizmo.add_handles() для отримання додаткової інформації).
Зателефоновано для активного Gizmos цього плагіна.
void _set_subgizmo_transform(gizmo: EditorNode3DGizmo, subgizmo_id: int, transform: Transform3D) virtual 🔗
На відміну від цього способу оновлення властивостей вузлів під час редагування субгізмо (див. _subgizmos_intersect_ray() і _subgizmos_intersect_frustum()). У локальній координаційній системі Node3D наведено в локальну координацію Node3D. Зателефоновано для активного Gizmos цього плагіна.
PackedInt32Array _subgizmos_intersect_frustum(gizmo: EditorNode3DGizmo, camera: Camera3D, frustum_planes: Array[Plane]) virtual const 🔗
Надіславши цей метод, щоб дозволити вибрати підгізмос за допомогою миші перетягування коробки. З огляду на camera і frustum_planes, цей метод повинен повернути, які subgizmos містяться в межах frustums. frustum_planes аргумент складається з масиву з усіма Plane, які роблять вибір frustum. Повернуте значення має містити список унікальних ідентифікаторів субгізмо, ці ідентифікатори можуть мати будь-яке негативне значення і буде використовуватися в інших віртуальних методах, таких як _subgizmo_transform() або _commit_subgizmos(). Зателефоновано для активного Gizmos цього плагіна.
int _subgizmos_intersect_ray(gizmo: EditorNode3DGizmo, camera: Camera3D, screen_pos: Vector2) virtual const 🔗
Надіславши цей метод, щоб дозволити вибрати підгізмос за допомогою кліків миші. З огляду на camera і screen_pos в координатах екрана, цей метод повинен повернути який subgizmo слід вибрати. Повернуте значення має бути унікальним ідентифікатором субгізмо, який може мати будь-яке негативне значення і буде використовуватися в інших віртуальних методах, таких як _subgizmo_transform() або _commit_subgizmos(). Зателефоновано для активного Gizmos цього плагіна.
void add_material(name: String, material: StandardMaterial3D) 🔗
Додати новий матеріал до внутрішнього списку матеріалів для плагіна. Далі можна отримати get_material(). Не варто переносити.
void create_handle_material(name: String, billboard: bool = false, texture: Texture2D = null) 🔗
Створює ручний матеріал з його варіантами (вибірний і/або редагований) і додає їх до внутрішнього переліку матеріалів. Далі можна отримати get_material() і використовувати в EditorNode3DGizmo.add_handles(). Не варто переносити.
Ви можете додатково надати фактуру замість іконки за замовчуванням.
void create_icon_material(name: String, texture: Texture2D, on_top: bool = false, color: Color = Color(1, 1, 1, 1)) 🔗
Створює іконковий матеріал з його варіантами (вибірний і/або редагований) і додає їх до внутрішнього переліку матеріалів. Далі можна отримати get_material() і використовувати в EditorNode3DGizmo.add_unscaled_billboard(). Не варто переносити.
void create_material(name: String, color: Color, billboard: bool = false, on_top: bool = false, use_vertex_color: bool = false) 🔗
Створює неочищений матеріал з його варіантами (вибірний і/або редагований) і додає їх до внутрішнього переліку матеріалів. Ви можете отримати доступ до get_material() і використовувати в EditorNode3DGizmo.add_mesh() і EditorNode3DGizmo.add_lines(). Не варто переносити.
StandardMaterial3D get_material(name: String, gizmo: EditorNode3DGizmo = null) 🔗
Отримує матеріал з внутрішнього переліку матеріалів. Якщо надана EditorNode3DGizmo, намагатиметься отримати відповідний варіант (вибраний і/або редагований).