Files
godot-docs-l10n/classes/ru/class_editorscenepostimport.rst

132 lines
6.3 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_EditorScenePostImport:
EditorScenePostImport
=====================
**Наследует:** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Постобработка сцен после импорта.
.. rst-class:: classref-introduction-group
Описание
----------------
Импортированные сцены можно автоматически изменять сразу после импорта, установив их свойство **Custom Script** Import на скрипт ``tool``, который наследуется от этого класса.
Обратный вызов :ref:`_post_import()<class_EditorScenePostImport_private_method__post_import>` получает корневой узел импортированной сцены и возвращает измененную версию сцены:
.. tabs::
.. code-tab:: gdscript
@tool # Необходимо, чтобы он работал в редакторе.
extends EditorScenePostImport
# В этом примере изменяются все имена узлов.
# Вызывается сразу после импорта сцены и получает корневой узел.
func _post_import(scene):
# Измените все имена узлов на "modified_[oldnodename]"
iterate(scene)
return scene # Не забудьте вернуть импортированную сцену.
func iterate(node):
if node != null:
node.name = "modified_" + node.name
for child in node.get_children():
iterate(child)
.. code-tab:: csharp
using Godot;
// В этом примере изменяются все имена узлов.
// Вызывается сразу после импорта сцены и получает корневой узел.
[Tool]
public partial class NodeRenamer : EditorScenePostImport
{
public override GodotObject _PostImport(Node scene)
{
// Измените все имена узлов на "modified_[oldnodename]"
Iterate(scene);
return scene; // Не забудьте вернуть импортированную сцену.
}
public void Iterate(Node node)
{
if (node != null)
{
node.Name = $"modified_{node.Name}";
foreach (Node child in node.GetChildren())
{
Iterate(child);
}
}
}
}
.. rst-class:: classref-introduction-group
Обучающие материалы
--------------------------------------
- `Импорт 3D-сцен: Конфигурация: Использование скриптов импорта для автоматизации <../tutorials/assets_pipeline/importing_3d_scenes/import_configuration.html#using-import-scripts-for-automation>`__
.. rst-class:: classref-reftable-group
Методы
------------
.. table::
:widths: auto
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Object<class_Object>` | :ref:`_post_import<class_EditorScenePostImport_private_method__post_import>`\ (\ scene\: :ref:`Node<class_Node>`\ ) |virtual| |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_source_file<class_EditorScenePostImport_method_get_source_file>`\ (\ ) |const| |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания метода
------------------------------
.. _class_EditorScenePostImport_private_method__post_import:
.. rst-class:: classref-method
:ref:`Object<class_Object>` **_post_import**\ (\ scene\: :ref:`Node<class_Node>`\ ) |virtual| :ref:`🔗<class_EditorScenePostImport_private_method__post_import>`
Вызывается после импорта сцены. Этот метод должен возвращать измененную версию сцены.
.. rst-class:: classref-item-separator
----
.. _class_EditorScenePostImport_method_get_source_file:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_source_file**\ (\ ) |const| :ref:`🔗<class_EditorScenePostImport_method_get_source_file>`
Возвращает путь к исходному файлу, который был импортирован (например, ``res://scene.dae``).
.. |virtual| replace:: :abbr:`virtual (Этот метод обычно должен быть переопределен пользователем, чтобы иметь какой-либо эффект.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Этот метод не имеет побочных эффектов. Он не изменяет ни одну из переменных-членов экземпляра.)`
.. |vararg| replace:: :abbr:`vararg (Этот метод принимает любое количество аргументов после описанных здесь.)`
.. |constructor| replace:: :abbr:`constructor (Этот метод используется для создания типа.)`
.. |static| replace:: :abbr:`static (Этот метод не нуждается в вызове экземпляра, поэтому его можно вызвать напрямую, используя имя класса.)`
.. |operator| replace:: :abbr:`operator (Этот метод описывает допустимый оператор для использования с этим типом в качестве левого операнда.)`
.. |bitfield| replace:: :abbr:`BitField (Это значение является целым числом, составленным как битовая маска следующих флагов.)`
.. |void| replace:: :abbr:`void (Нет возвращаемого значения.)`