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...
EditorNode3DGizmo
Успадковує: Node3DGizmo < RefCounted < Object
Gizmo для редагування Node3D об'єктів.
Опис
Гізмо, що використовується для забезпечення власної візуалізації та редагування (дескриптори та підгізмо) для об'єктів Node3D. Може бути перевизначений для створення власних гізмо, але для простих гізмо зазвичай рекомендується створення EditorNode3DGizmoPlugin.
Методи
void |
_begin_handle_action(id: int, secondary: bool) virtual |
void |
_commit_handle(id: int, secondary: bool, restore: Variant, cancel: bool) virtual |
void |
_commit_subgizmos(ids: PackedInt32Array, restores: Array[Transform3D], cancel: bool) virtual |
String |
_get_handle_name(id: int, secondary: bool) virtual const |
Variant |
_get_handle_value(id: int, secondary: bool) virtual const |
Transform3D |
_get_subgizmo_transform(id: int) virtual const |
_is_handle_highlighted(id: int, secondary: bool) virtual const |
|
void |
_redraw() virtual |
void |
_set_handle(id: int, secondary: bool, camera: Camera3D, point: Vector2) virtual |
void |
_set_subgizmo_transform(id: int, transform: Transform3D) virtual |
PackedInt32Array |
_subgizmos_intersect_frustum(camera: Camera3D, frustum: Array[Plane]) virtual const |
_subgizmos_intersect_ray(camera: Camera3D, point: Vector2) virtual const |
|
void |
add_collision_segments(segments: PackedVector3Array) |
void |
add_collision_triangles(triangles: TriangleMesh) |
void |
add_handles(handles: PackedVector3Array, material: Material, ids: PackedInt32Array, billboard: bool = false, secondary: bool = false) |
void |
add_lines(lines: PackedVector3Array, material: Material, billboard: bool = false, modulate: Color = Color(1, 1, 1, 1)) |
void |
add_mesh(mesh: Mesh, material: Material = null, transform: Transform3D = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0), skeleton: SkinReference = null) |
void |
add_unscaled_billboard(material: Material, default_scale: float = 1, modulate: Color = Color(1, 1, 1, 1)) |
void |
clear() |
Node3D |
get_node_3d() const |
get_plugin() const |
|
PackedInt32Array |
get_subgizmo_selection() const |
is_subgizmo_selected(id: int) const |
|
void |
set_hidden(hidden: bool) |
void |
set_node_3d(node: Node) |
Описи методів
void _begin_handle_action(id: int, secondary: bool) virtual 🔗
There is currently no description for this method. Please help us by contributing one!
void _commit_handle(id: int, secondary: bool, restore: Variant, cancel: bool) virtual 🔗
Перевизначте цей метод, щоб зафіксувати дескриптор, який редагується (дескриптори мають бути попередньо додані за допомогою add_handles()). Зазвичай це означає створення дії UndoRedo для зміни, використовуючи поточне значення дескриптора як "do" і аргумент restore як "undo".
Якщо аргумент cancel має значення true, значення restore слід встановити безпосередньо, без застосування дії UndoRedo.
Аргумент secondary має значення true, якщо зафіксований дескриптор є вторинним (див. add_handles() для отримання додаткової інформації).
void _commit_subgizmos(ids: PackedInt32Array, restores: Array[Transform3D], cancel: bool) virtual 🔗
Перевизначте цей метод, щоб зафіксувати групу підгізмів, які редагуються (див. _subgizmos_intersect_ray() і _subgizmos_intersect_frustum()). Зазвичай це означає створення дії UndoRedo для зміни, використовуючи поточні перетворення як "do", а перетворення restores як "undo".
Якщо аргумент cancel має значення true, перетворення restores слід встановити безпосередньо, без жодної дії UndoRedo.
String _get_handle_name(id: int, secondary: bool) virtual const 🔗
Зазначте цей метод, щоб повернути ім'я редагованої ручки (ручка повинні бути попередньо додані add_handles()). Руки можуть бути названі для посилання на користувача при редагуванні.
secondary аргумент true, коли потрібна ручка вторинна (див. add_handles() для отримання додаткової інформації).
Variant _get_handle_value(id: int, secondary: bool) virtual const 🔗
Надіславши цей метод для повернення поточного значення ручки. Ця вартість буде запитана при старті редагування та використовується як restore аргумент _commit_handle().
secondary аргумент true, коли потрібна ручка вторинна (див. add_handles() для отримання додаткової інформації).
Transform3D _get_subgizmo_transform(id: int) virtual const 🔗
На відміну від цього способу повернення поточного перетворення підгізмо. Ця трансформація буде запитана при старті редагування та використаних як аргумент `` і `` в _commit_subgizmos().
bool _is_handle_highlighted(id: int, secondary: bool) virtual const 🔗
Перевизначте цей метод, щоб він повертав true щоразу, коли заданий дескриптор має бути виділений у редакторі.
Аргумент secondary має значення true, якщо запитуваний дескриптор є вторинним (див. add_handles() для отримання додаткової інформації).
void _redraw() virtual 🔗
На відміну від цього способу, щоб додати всі мікроелементи, коли запитується оновлення gizmo. Зазвичай, щоб викликати clear() на початку цього способу, а потім додати візуальні елементи в залежності від властивостей вузла.
void _set_handle(id: int, secondary: bool, camera: Camera3D, point: Vector2) virtual 🔗
Перевизнайте цей метод для оновлення властивостей вузлів, коли користувач перетягує рукоятку (попередньо додано add_handles()). Надана точка є позиція мишки в координатах екрана і camera може бути використана для перетворення його в промені.
secondary аргумент true, коли редагована ручка вторинна (див. add_handles() для отримання додаткової інформації).
void _set_subgizmo_transform(id: int, transform: Transform3D) virtual 🔗
На відміну від цього способу оновлення властивостей вузлів під час редагування субгізмо (див. _subgizmos_intersect_ray() і _subgizmos_intersect_frustum()). У локальній координаційній системі «Node3D» надана трансформація transform.
PackedInt32Array _subgizmos_intersect_frustum(camera: Camera3D, frustum: Array[Plane]) virtual const 🔗
Надіславши цей метод, щоб дозволити вибрати підгізмос за допомогою миші перетягування коробки. З огляду на camera і frustum, цей метод повинен повернути, які subgizmos містяться в межах frustum. frustum аргумент складається з масиву з усіма Plane, які складають вибір frustum. Повернуте значення має містити список унікальних ідентифікаторів субгізмо, які можуть мати будь-яке негативне значення і будуть використані в інших віртуальних методах, таких як _subgizmo_transform() або _commit_subgizmos().
int _subgizmos_intersect_ray(camera: Camera3D, point: Vector2) virtual const 🔗
Надіславши цей метод, щоб дозволити вибрати підгізмос за допомогою кліків миші. З огляду на camera і point в координатах екрана, цей метод повинен повернути який subgizmo слід вибрати. Повернуте значення має бути унікальним ідентифікатором субгізмо, який може мати будь-яке негативне значення і буде використовуватися в інших віртуальних методах, таких як _subgizmo_transform() або _commit_subgizmos().
void add_collision_segments(segments: PackedVector3Array) 🔗
Додає вказані сегменти segments до форми зіткнення гізмо для вибору. Викликайте цей метод під час _redraw().
void add_collision_triangles(triangles: TriangleMesh) 🔗
Додає трикутники зіткнення до гізмо для вибору. TriangleMesh також може бути згенерований зі звичайного Mesh. Викличте цей метод під час _redraw().
void add_handles(handles: PackedVector3Array, material: Material, ids: PackedInt32Array, billboard: bool = false, secondary: bool = false) 🔗
Додає список ручок (точки), які можуть використовуватися для редагування властивостей Gizmo Node3D. Текст ids може бути використаний для визначення користувацького ідентифікатора для кожної ручки, якщо пропущений порожній масив, попередження буде автоматично від ручки аргумента замовлення.
secondary аргумент позначить додані ручки як вторинний, тобто вони зазвичай мають більш низький пріоритет вибору, ніж звичайні ручки. Коли користувач тримає ключ змінного струму вторинними ручками буде переходити до більш високого пріоритету, ніж звичайні ручки. Ця зміна в пріоритеті може бути використана для розміщення декількох ручок в тій же точці, коли все ще дає контроль користувача на їх вибір.
Ви знайдете віртуальні методи, які будуть викликані редагуванням цих ручок. Зателефонуйте цей метод під час _redraw().
void add_lines(lines: PackedVector3Array, material: Material, billboard: bool = false, modulate: Color = Color(1, 1, 1, 1)) 🔗
Додає лінії до гізмо (як набори з 2 точок), із заданим матеріалом. Лінії використовуються для візуалізації гізмо. Викличте цей метод під час _redraw().
void add_mesh(mesh: Mesh, material: Material = null, transform: Transform3D = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0), skeleton: SkinReference = null) 🔗
Додає сітку до гізмо із заданими параметрами material, локальними параметрами transform та skeleton. Викликайте цей метод під час виконання _redraw().
void add_unscaled_billboard(material: Material, default_scale: float = 1, modulate: Color = Color(1, 1, 1, 1)) 🔗
Додає немасштабований рекламний щит для візуалізації та вибору. Викличте цей метод під час _redraw().
void clear() 🔗
Видаляє все в гізмо, включаючи сітки, колізії та ручки.
Node3D get_node_3d() const 🔗
Повертає вузол Node3D, пов'язаний з цим gizmo.
EditorNode3DGizmoPlugin get_plugin() const 🔗
Повертає EditorNode3DGizmoPlugin, якому належить цей гізмо. Корисно отримувати матеріали за допомогою EditorNode3DGizmoPlugin.get_material().
PackedInt32Array get_subgizmo_selection() const 🔗
Повертає список вибраних підґізмів. Може використовуватися для виділення вибраних елементів під час виконання _redraw().
bool is_subgizmo_selected(id: int) const 🔗
Повертає true, якщо даний subgizmo наразі вибрано. Може використовуватися для виділення вибраних елементів під час _redraw().
Налаштовує прихований стан гізмо. Якщо true, то гизмо буде приховано. Якщо false, він буде показано.
void set_node_3d(node: Node) 🔗
Встановлює посилання Node3D вузол для gizmo. node повинен успадкуватися Node3D.