Files
godot-docs-l10n/classes/uk/class_multiplayersynchronizer.rst
2025-09-30 13:31:55 +02:00

337 lines
19 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
.. meta::
:keywords: network
.. _class_MultiplayerSynchronizer:
MultiplayerSynchronizer
=======================
**Успадковує:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
Синхронізація властивостей від багатокористувацького органу до віддалених однолітків.
.. rst-class:: classref-introduction-group
Опис
--------
За замовчуванням, **MultiplayerSynchronizer** синхронізація налаштованих властивостей для всіх однолітків.
Увімкнення може оброблятися безпосередньо з :ref:`set_visibility_for()<class_MultiplayerSynchronizer_method_set_visibility_for>` або як-от з :ref:`add_visibility_filter()<class_MultiplayerSynchronizer_method_add_visibility_filter>` та :ref:`update_visibility()<class_MultiplayerSynchronizer_method_update_visibility>`.
\ :ref:`MultiplayerSpawner<class_MultiplayerSpawner>`\ s буде обробляти вершини member до видимості синхронізаторів до тих пір, як вузол в :ref:`root_path<class_MultiplayerSynchronizer_property_root_path>` був спалений одним.
Внутрішня, **MultiplayerSynchronizer** використовує :ref:`MultiplayerAPI.object_configuration_add()<class_MultiplayerAPI_method_object_configuration_add>`, щоб повідомити синхронізацію початок проходження :ref:`Node<class_Node>` в :ref:орінь_path<class_MultiplayerSynchronizer_property_корінь_path>` як ``object`` і себе як ``конфігурація ``, і використовує :ref:`MultiplayerAPI.ob_configuration_remove()<class_MultiplayerAPI_method_ob_configuration_remove>`, щоб повідомити синхронізацію кінець аналогічним чином.
\ **Примітка:** Синхронізація не підтримується для типів :ref:`Object<class_Object>`, таких як :ref:`Resource<class_Resource>`. Властивості, які є унікальними для кожного однолітника, як ідентифікатор екземплярів :ref:`Object<class_Object>` (див. :ref:`Об'єкт.get_instance_id()<class_Об'єкт_method_get_instance_id>`) або :ref:`RID<class_RID>`, також не будуть працювати в синхронізації.
.. rst-class:: classref-reftable-group
Властивості
----------------------
.. table::
:widths: auto
+--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
| :ref:`float<class_float>` | :ref:`delta_interval<class_MultiplayerSynchronizer_property_delta_interval>` | ``0.0`` |
+--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
| :ref:`bool<class_bool>` | :ref:`public_visibility<class_MultiplayerSynchronizer_property_public_visibility>` | ``true`` |
+--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
| :ref:`SceneReplicationConfig<class_SceneReplicationConfig>` | :ref:`replication_config<class_MultiplayerSynchronizer_property_replication_config>` | |
+--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
| :ref:`float<class_float>` | :ref:`replication_interval<class_MultiplayerSynchronizer_property_replication_interval>` | ``0.0`` |
+--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
| :ref:`NodePath<class_NodePath>` | :ref:`root_path<class_MultiplayerSynchronizer_property_root_path>` | ``NodePath("..")`` |
+--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
| :ref:`VisibilityUpdateMode<enum_MultiplayerSynchronizer_VisibilityUpdateMode>` | :ref:`visibility_update_mode<class_MultiplayerSynchronizer_property_visibility_update_mode>` | ``0`` |
+--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+--------------------+
.. rst-class:: classref-reftable-group
Методи
------------
.. table::
:widths: auto
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_visibility_filter<class_MultiplayerSynchronizer_method_add_visibility_filter>`\ (\ filter\: :ref:`Callable<class_Callable>`\ ) |
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_visibility_for<class_MultiplayerSynchronizer_method_get_visibility_for>`\ (\ peer\: :ref:`int<class_int>`\ ) |const| |
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_visibility_filter<class_MultiplayerSynchronizer_method_remove_visibility_filter>`\ (\ filter\: :ref:`Callable<class_Callable>`\ ) |
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_visibility_for<class_MultiplayerSynchronizer_method_set_visibility_for>`\ (\ peer\: :ref:`int<class_int>`, visible\: :ref:`bool<class_bool>`\ ) |
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`update_visibility<class_MultiplayerSynchronizer_method_update_visibility>`\ (\ for_peer\: :ref:`int<class_int>` = 0\ ) |
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Сигнали
--------------
.. _class_MultiplayerSynchronizer_signal_delta_synchronized:
.. rst-class:: classref-signal
**delta_synchronized**\ (\ ) :ref:`🔗<class_MultiplayerSynchronizer_signal_delta_synchronized>`
Увімкнено, коли новий стан синхронізації дельти отримує цей синхронізатор після оновлення властивостей.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerSynchronizer_signal_synchronized:
.. rst-class:: classref-signal
**synchronized**\ (\ ) :ref:`🔗<class_MultiplayerSynchronizer_signal_synchronized>`
Увімкнено, коли новий стан синхронізації отримується цим синхронізатором після оновлення властивостей.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerSynchronizer_signal_visibility_changed:
.. rst-class:: classref-signal
**visibility_changed**\ (\ for_peer\: :ref:`int<class_int>`\ ) :ref:`🔗<class_MultiplayerSynchronizer_signal_visibility_changed>`
Увімкнено при видимості ``for_peer``. Див. :ref:`update_visibility()<class_MultiplayerSynchronizer_method_update_visibility>`.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Переліки
----------------
.. _enum_MultiplayerSynchronizer_VisibilityUpdateMode:
.. rst-class:: classref-enumeration
enum **VisibilityUpdateMode**: :ref:`🔗<enum_MultiplayerSynchronizer_VisibilityUpdateMode>`
.. _class_MultiplayerSynchronizer_constant_VISIBILITY_PROCESS_IDLE:
.. rst-class:: classref-enumeration-constant
:ref:`VisibilityUpdateMode<enum_MultiplayerSynchronizer_VisibilityUpdateMode>` **VISIBILITY_PROCESS_IDLE** = ``0``
Фільтри життєздатності оновлюються під час обробки кадрів (див. [constant Node. ІНТЕРНАЛ_ПРОЦЕС".
.. _class_MultiplayerSynchronizer_constant_VISIBILITY_PROCESS_PHYSICS:
.. rst-class:: classref-enumeration-constant
:ref:`VisibilityUpdateMode<enum_MultiplayerSynchronizer_VisibilityUpdateMode>` **VISIBILITY_PROCESS_PHYSICS** = ``1``
Фільтри життєздатності оновлюються під час фізики (див. [constant Node. ІНТЕРНАЛ_ФІЗИКАРОЦЕС".
.. _class_MultiplayerSynchronizer_constant_VISIBILITY_PROCESS_NONE:
.. rst-class:: classref-enumeration-constant
:ref:`VisibilityUpdateMode<enum_MultiplayerSynchronizer_VisibilityUpdateMode>` **VISIBILITY_PROCESS_NONE** = ``2``
Фільтри, які не оновлюються автоматично, і повинні бути оновлені вручну, за допомогою виклику :ref:`update_visibility()<class_MultiplayerSynchronizer_method_update_visibility>`.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описи властивостей
------------------------------------
.. _class_MultiplayerSynchronizer_property_delta_interval:
.. rst-class:: classref-property
:ref:`float<class_float>` **delta_interval** = ``0.0`` :ref:`🔗<class_MultiplayerSynchronizer_property_delta_interval>`
.. rst-class:: classref-property-setget
- |void| **set_delta_interval**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_delta_interval**\ (\ )
Інтервал часу між дельта-синхронізаціями. Використовується, коли для реплікації встановлено значення :ref:`SceneReplicationConfig.REPLICATION_MODE_ON_CHANGE<class_SceneReplicationConfig_constant_REPLICATION_MODE_ON_CHANGE>`. Якщо встановлено значення ``0.0`` (за замовчуванням), дельта-синхронізації відбуваються в кожному кадрі мережевого процесу.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerSynchronizer_property_public_visibility:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **public_visibility** = ``true`` :ref:`🔗<class_MultiplayerSynchronizer_property_public_visibility>`
.. rst-class:: classref-property-setget
- |void| **set_visibility_public**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_visibility_public**\ (\ )
Якщо синхронізація має бути видимим для всіх однолітків за замовчуванням. Див. :ref:`set_visibility_for()<class_MultiplayerSynchronizer_method_set_visibility_for>` і :ref:`add_visibility_filter()<class_MultiplayerSynchronizer_method_add_visibility_filter>` для способів налаштування параметрів дрібнозернистої видимості.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerSynchronizer_property_replication_config:
.. rst-class:: classref-property
:ref:`SceneReplicationConfig<class_SceneReplicationConfig>` **replication_config** :ref:`🔗<class_MultiplayerSynchronizer_property_replication_config>`
.. rst-class:: classref-property-setget
- |void| **set_replication_config**\ (\ value\: :ref:`SceneReplicationConfig<class_SceneReplicationConfig>`\ )
- :ref:`SceneReplicationConfig<class_SceneReplicationConfig>` **get_replication_config**\ (\ )
Ресурс, що містить які властивості синхронізувати.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerSynchronizer_property_replication_interval:
.. rst-class:: classref-property
:ref:`float<class_float>` **replication_interval** = ``0.0`` :ref:`🔗<class_MultiplayerSynchronizer_property_replication_interval>`
.. rst-class:: classref-property-setget
- |void| **set_replication_interval**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_replication_interval**\ (\ )
Інтервал часу між синхронізаціями. Використовується, коли для реплікації встановлено значення :ref:`SceneReplicationConfig.REPLICATION_MODE_ALWAYS<class_SceneReplicationConfig_constant_REPLICATION_MODE_ALWAYS>`. Якщо встановлено значення ``0.0`` (за замовчуванням), синхронізація відбувається кожного кадру мережевого процесу.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerSynchronizer_property_root_path:
.. rst-class:: classref-property
:ref:`NodePath<class_NodePath>` **root_path** = ``NodePath("..")`` :ref:`🔗<class_MultiplayerSynchronizer_property_root_path>`
.. rst-class:: classref-property-setget
- |void| **set_root_path**\ (\ value\: :ref:`NodePath<class_NodePath>`\ )
- :ref:`NodePath<class_NodePath>` **get_root_path**\ (\ )
Шлях до вузла, відносно якого залежать репліковані властивості.
Якщо :ref:`root_path<class_MultiplayerSynchronizer_property_root_path>` був створений :ref:`MultiplayerSpawner<class_MultiplayerSpawner>`, Вузол також буде створюватися та зникати на основі параметрів видимості цього синхронізатора.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerSynchronizer_property_visibility_update_mode:
.. rst-class:: classref-property
:ref:`VisibilityUpdateMode<enum_MultiplayerSynchronizer_VisibilityUpdateMode>` **visibility_update_mode** = ``0`` :ref:`🔗<class_MultiplayerSynchronizer_property_visibility_update_mode>`
.. rst-class:: classref-property-setget
- |void| **set_visibility_update_mode**\ (\ value\: :ref:`VisibilityUpdateMode<enum_MultiplayerSynchronizer_VisibilityUpdateMode>`\ )
- :ref:`VisibilityUpdateMode<enum_MultiplayerSynchronizer_VisibilityUpdateMode>` **get_visibility_update_mode**\ (\ )
Визначає, коли оновлюються фільтри видимості.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описи методів
--------------------------
.. _class_MultiplayerSynchronizer_method_add_visibility_filter:
.. rst-class:: classref-method
|void| **add_visibility_filter**\ (\ filter\: :ref:`Callable<class_Callable>`\ ) :ref:`🔗<class_MultiplayerSynchronizer_method_add_visibility_filter>`
Додавання фільтра видимості однолітків для цього синхронізатора.
\ ``filter`` повинен прийняти однолітковий ідентифікатор :ref:`int<class_int>` і повернути :ref:`bool<class_bool>`.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerSynchronizer_method_get_visibility_for:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **get_visibility_for**\ (\ peer\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_MultiplayerSynchronizer_method_get_visibility_for>`
Отримує поточну видимість для вузла ``peer``.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerSynchronizer_method_remove_visibility_filter:
.. rst-class:: classref-method
|void| **remove_visibility_filter**\ (\ filter\: :ref:`Callable<class_Callable>`\ ) :ref:`🔗<class_MultiplayerSynchronizer_method_remove_visibility_filter>`
Видаліть фільтр видимості однолітків з цього синхронізатора.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerSynchronizer_method_set_visibility_for:
.. rst-class:: classref-method
|void| **set_visibility_for**\ (\ peer\: :ref:`int<class_int>`, visible\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_MultiplayerSynchronizer_method_set_visibility_for>`
Налаштовує видимість ``param-дір`` на ``visible``. ``0``, значення :ref:`public_visibility<class_MultiplayerSynchronizer_property_public_visibility>` буде оновлено.
.. rst-class:: classref-item-separator
----
.. _class_MultiplayerSynchronizer_method_update_visibility:
.. rst-class:: classref-method
|void| **update_visibility**\ (\ for_peer\: :ref:`int<class_int>` = 0\ ) :ref:`🔗<class_MultiplayerSynchronizer_method_update_visibility>`
Оновлення видимості ``for_peer`` відповідно до видимих фільтрів. Якщо ``for_peer`` є ``0`` (за замовчуванням), всі можливості однолітків оновлюються.
.. |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 (Значення не повертається.)`