Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

EventService

класс в UnityEditor.MPE

Описание

EventService — это одноэлементная реализация ChannelClient, которая работает на всех экземплярах Unity. Он подключен к каналу "events" и позволяет экземпляру Unity отправлять сообщения JSON другим EventService во внешнем процессе или другим экземплярам Unity.

EventService может отправлять сообщения типа "выстрелил и забыл" (см. EventService.Emit), либо запрашивать информацию, либо от одного клиента (см. EventService.Request).

using UnityEditor; using UnityEngine; using UnityEditor.MPE; using System;

public static class EventServiceDocExample { static Action s_CustomLogEventDisconnect; static Action s_PingPongEventDisconnect;

[MenuItem("EventServiceDoc/Step 0")] static void StartChannelService() { if (!ChannelService.IsRunning()) { ChannelService.Start(); } Debug.Log($"[Step 0] ChannelService Running: {ChannelService.GetAddress()}:{ChannelService.GetPort()}"); }

[MenuItem("EventServiceDoc/Step 1")] static void SetupEventServiceHandlers() { Debug.Log("[Step 1] Setup handlers"); s_CustomLogEventDisconnect = EventService.RegisterEventHandler("custom_log", (eventType, args) => { Debug.Log($"Log a {eventType} {args[0]}"); });

s_PingPongEventDisconnect = EventService.RegisterEventHandler("pingpong", (eventType, args) => { Debug.Log($"Receive a {eventType} {args[0]}"); return "pong!"; }); }

[MenuItem("EventServiceDoc/Step 2")] static void EmitMessage() { Debug.Log("[Step 2] Emitting a custom log"); EventService.Emit("custom_log", "Hello world!", -1, EventDataSerialization.JsonUtility); }

[MenuItem("EventServiceDoc/Step 3")] static void SendRequest() { Debug.Log("[Step 3] Sending a request"); EventService.Request("pingpong", (err, data) => { Debug.Log($"Request fulfilled: {data[0]}"); }, "ping", -1, EventDataSerialization.JsonUtility); }

[MenuItem("EventServiceDoc/Step 4")] static void CloseHandlers() { Debug.Log("[Step 4] Closing all Event handlers"); s_CustomLogEventDisconnect(); s_PingPongEventDisconnect(); } }

/*

When you execute the five menu items one after the other, Unity prints the following messages to the Console window:

[Step 0] ChannelService Running: 127.0.0.1:65000

[Step 1] Setup handlers

[Step 2] Emitting a custom log

Log a custom_log Hello world!

[Step 3] Sending a request

Receive a pingpong ping

Request fulfilled: pong!

[Step 4] Closing all Event handlers

*/

Статические Свойства

isConnected EventService подключен к каналу «событий» ChannelService.

Статические Методы

CancelRequest Проверяет наличие ожидающего запроса на определенное событие и, если есть, отменяет его. Дополнительные сведения о запросе см. в разделе EventService.Request.
Clear Удалить все ожидающие запросы.
Close Закрывает EventService, разрывает соединения с ChannelService и гарантирует, что обработчики больше не обрабатываются.
Emit Отправляет сообщение "запустил и забыл" всем ChannelClient, подключенным к маршруту "events".
IsRequestPending Проверяет, ожидает ли запрос определенного события. Дополнительные сведения о запросе см. в разделе EventService.Request.
Log Отправляет сообщение журнала в ChannelService. Сообщения журнала выводятся в окно консоли.
RegisterEventHandler Регистрирует обработчик для определенного типа события. Обработчик вызывается всякий раз, когда отправляется сообщение указанного типа. Сообщения отправляются с помощью EventService.Emit или EventService.Request.
Request Отправляет запрос всем подключенным клиентам по каналу "events".
Start Запускает службу EventService, чтобы она прослушивала новые сообщения.
Tick Отмечает EventService. Это обрабатывает все входящие и исходящие сообщения. По умолчанию EventService помечен для каждого EditorApplication.update.
UnregisterEventHandler Отменяет регистрацию обработчика определенного события.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3