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...
MultiplayerAPI
Успадковує: RefCounted < Object
Успадковано від: MultiplayerAPIExtension, SceneMultiplayer
Високорівневий багатокористувацький API інтерфейс.
Опис
Базовий клас для реалізації багатокористувацького API високого рівня. Дивись також MultiplayerPeer.
За замовчуванням SceneTree має посилання на виконання цього класу і використовує його для забезпечення можливостей мультиплеєра (тобто RPCs) на всій сцені.
Можливо перевизнати екземпляр MultiplayerAPI, який використовується певними гілочками дерева, викликаючиSceneTree.set_multiplayer(), ефективно дозволяючи працювати як клієнт, так і сервер в одній сцені.
Також можна розширити або замінити виконання за замовчуванням за допомогою скриптів або рідних розширень. Докладніше про розширення, SceneMultiplayer для деталей щодо реалізації за замовчуванням.
Властивості
Методи
create_default_interface() static |
|
StringName |
get_default_interface() static |
PackedInt32Array |
|
object_configuration_add(object: Object, configuration: Variant) |
|
object_configuration_remove(object: Object, configuration: Variant) |
|
poll() |
|
rpc(peer: int, object: Object, method: StringName, arguments: Array = []) |
|
void |
set_default_interface(interface_name: StringName) static |
Сигнали
connected_to_server() 🔗
Видається, коли цей MultiplayerAPI multiplayer_peer успішно підключився до сервера. Видається лише на клієнтах.
connection_failed() 🔗
Видається, коли цьому MultiplayerAPI multiplayer_peer не вдається встановити з'єднання із сервером. Видається лише на клієнтах.
Випробувано, коли це MultiplayerAPI's multiplayer_peer з'єднується з новим однолітком. Ідентифікатор є одностороннім ідентифікатором нового покоління. Клієнти отримують сповіщення при підключенні інших клієнтів до одного сервера. При підключенні до сервера клієнт також отримує цей сигнал для сервера (з ідентифікатором 1).
Випробувано, коли це багатокористувацька multiplayer_peer відключається від однолітків. Клієнти отримують сповіщення, коли інші клієнти відключаються з одного сервера.
server_disconnected() 🔗
Увімкнено, коли це багатокористувацька multiplayer_peer відключається з сервера. Клієнтам.
Переліки
enum RPCMode: 🔗
RPCMode RPC_MODE_DISABLED = 0
Використовується з Node.rpc_config() для відключення методу або майна для всіх дзвінків RPC, що робить його недоступним. За замовчуванням для всіх методів.
RPCMode RPC_MODE_ANY_PEER = 1
Використовується з Node.rpc_config(), щоб встановити метод, який можна викликати дистанційно. Анотація @rpc("any_peer"). Дзвінки приймаються з усіх віддалених однолітків, незалежно від того, чи є вони повноваження вузла або ні.
RPCMode RPC_MODE_AUTHORITY = 2
Використовується з Node.rpc_config(), щоб встановити метод, який можна викликати віддалено тільки чинним органом мультиплеєра (який сервер за замовчуванням). Анотація @rpc("авторитет"). Див. Node.set_multiplayer_authority().
Описи властивостей
MultiplayerPeer multiplayer_peer 🔗
void set_multiplayer_peer(value: MultiplayerPeer)
MultiplayerPeer get_multiplayer_peer()
Об'єкт, що дозволяє працювати в системі RPC (ефективно дозволяє мережі при встановленні). В залежності від самого однолітків, MultiplayerAPI стане мережевим сервером (check with is_server()) і встановить режим мережі кореневих вузлів до влади, або він стане постійним клієнтом. Всі дочірні вершини встановлюються для успадкування мережевого режиму за замовчуванням. Можливість підключення сигналів MultiplayerAPI.
Описи методів
MultiplayerAPI create_default_interface() static 🔗
Повертає новий екземпляр за замовчуванням MultiplayerAPI.
StringName get_default_interface() static 🔗
Повертає ім'я класу за замовчуванням MultiplayerAPI. Це, як правило, "SceneMultiplayer", коли SceneMultiplayer доступний. Подивитися set_default_interface().
PackedInt32Array get_peers() 🔗
Повертаємо одноліткові ідентифікатори всіх підключених однолітків цієї мультиплеерації multiplayer_peer.
Повертає ідентифікатор відправника на RPC в даний час.
Примітка: Цей метод повертає 0 при підключенні зовні РПК. Таким чином, вихідний ідентифікатор може бути втрачений, коли затримка коду (наприклад, з GDScript await ключове слово).
Повертає унікальний ідентифікатор вузла цього MultiplayerAPI multiplayer_peer.
Повертає true, якщо встановлено multiplayer_peer.
Повертає true, якщо значення multiplayer_peer цього MultiplayerAPI є дійсним та перебуває в режимі сервера (очікує з'єднання).
Error object_configuration_add(object: Object, configuration: Variant) 🔗
Визначає багатокористувацьку конфігурацію configuration для вказаного object. Цей метод використовується внутрішньо SceneTree для налаштування кореневого шляху для цього MultiplayerAPI (passing null і діє NodePath як конфігураціяparam). Цей метод можна додатково використовувати за допомогою MultiplayerAPI, щоб забезпечити додаткові функції, відносяться до конкретної реалізації (наприклад, SceneMultiplayer) для деталей про те, як вони використовують його.
Примітка: Цей метод є переважно актуальним при розширенні або перенаправленні поведінки MultiplayerAPI через MultiplayerAPIExtension.
Error object_configuration_remove(object: Object, configuration: Variant) 🔗
Визначає багатокористувацький інтерфейс для видалення configuration для вказаного object. Цей метод використовується внутрішньо SceneTree для налаштування кореневого шляху для цього MultiplayerAPI (passing null і порожній NodePath як configuration). Цей метод можна додатково використовувати за допомогою MultiplayerAPI, щоб забезпечити додаткові функції, відносяться до конкретної реалізації (наприклад, SceneMultiplayer) для деталей про те, як вони використовують його.
Примітка: Цей метод є переважно актуальним при розширенні або перенаправленні поведінки MultiplayerAPI через MultiplayerAPIExtension.
Метод, який використовується для опитування багатокористувацького середовища. Вам потрібно лише турбуватися про це, якщо ви встановите SceneTree.multiplayer_poll до false. За замовчуванням, SceneTree буде опитувати його MultiplayerAPI(s) для вас.
Примітка: Цей метод призводить до того, що RPCs називається, тому вони будуть виконані в одному контексті цієї функції (наприклад, _process, physics, Thread).
Error rpc(peer: int, object: Object, method: StringName, arguments: Array = []) 🔗
Надсилає RPC цільовому peer. Даний method буде викликано на віддаленому об’єкті param із наданими аргументами arguments. RPC також може викликатися локально залежно від реалізації та конфігурації RPC. Див. Node.rpc() і Node.rpc_config().
Примітка. Надавайте перевагу використанню Node.rpc(), Node.rpc_id() або my_method.rpc(peer, arg1, arg2, ...) (у GDScript), оскільки вони швидші. Цей метод здебільшого корисний у поєднанні з MultiplayerAPIExtension під час розширення або заміни можливостей багатокористувацької гри.
void set_default_interface(interface_name: StringName) static 🔗
Налаштовує клас реалізації за замовчуванням. Цей метод може використовуватися модулями та розширеннями, які будуть використовуватися SceneTree при запуску двигуна.