EditorConnection
класс в UnityEditor.Networking.PlayerConnection
Наследуется от:ScriptableSingleton_1
Интерфейсы приспособлений:IEditorPlayerConnection
Описание
Обрабатывает подключение от Редактора к Проигрывателю.
Настраивает события для подключения и отправки данных в Проигрыватель.
Это класс-одиночка, обращаться к нему следует через EditorConnection.instance.
Это можно использовать только в классе, наследующем MonoBehaviour, Object или ScriptableObject.
Установите "Autoconnect Profiler" в настройках сборки или соберите проигрыватель через код с BuildPipeline, используя опции сборки: BuildOptions.ConnectToHost и BuildOptions.Development для инициализации соединения.
Игрок ID используется для различения нескольких подключенных Игроков. По умолчанию данные отправляются всем Игрокам. ID подключенного Игрока не гарантированно будет таким же при следующем подключении.
using System; using UnityEngine; using UnityEditor; using System.Text; using UnityEditor.Networking.PlayerConnection; using UnityEngine.Networking.PlayerConnection;
public class EditorConnectionExample : EditorWindow { public static readonly Guid kMsgSendEditorToPlayer = new Guid("EXAMPLEGUID"); public static readonly Guid kMsgSendPlayerToEditor = new Guid("EXAMPLEGUID");
[MenuItem("Test/EditorConnectionExample")] static void Init() { EditorConnectionExample window = (EditorConnectionExample)EditorWindow.GetWindow(typeof(EditorConnectionExample)); window.Show(); window.titleContent = new GUIContent("EditorConnectionExample"); }
void OnEnable() { EditorConnection.instance.Initialize(); EditorConnection.instance.Register(kMsgSendPlayerToEditor, OnMessageEvent); }
void OnDisable() { EditorConnection.instance.Unregister(kMsgSendPlayerToEditor, OnMessageEvent); EditorConnection.instance.DisconnectAll(); }
private void OnMessageEvent(MessageEventArgs args) { var text = Encoding.ASCII.GetString(args.data); Debug.Log("Message from player: " + text); }
void OnGUI() { var playerCount = EditorConnection.instance.ConnectedPlayers.Count; StringBuilder builder = new StringBuilder(); builder.AppendLine(string.Format("{0} players connected.", playerCount)); int i = 0; foreach (var p in EditorConnection.instance.ConnectedPlayers) { builder.AppendLine(string.Format("[{0}] - {1} {2}", i++, p.name, p.playerId)); } EditorGUILayout.HelpBox(builder.ToString(), MessageType.Info);
if (GUILayout.Button("Send message to player")) { EditorConnection.instance.Send(kMsgSendEditorToPlayer, Encoding.ASCII.GetBytes("Hello from Editor")); } } }
Свойства
| Свойство | Описание |
|---|---|
| ConnectedPlayers | Список подключенных игроков. |
Открытые методы
| Метод | Описание |
|---|---|
| DisconnectAll | Отключает все активные соединения между Редактором и Игроками. |
| Initialize | Инициализирует EditorConnection. |
| Register | Регистрирует обратный вызов по определенному сообщению ID. |
| RegisterConnection | Регистрирует обратный вызов, выполняемый при подключении нового Игрока к Редактору. |
| RegisterDisconnection | Регистрирует обратный вызов на Игрока, когда этот Игрок отключается. |
| Send | Отправляет данные подключенным Игрокам. |
| TrySend | Попытки отправить данные из Редактора к подключенным Игрокам. |
| Unregister | Отменяет регистрацию зарегистрированного обратного вызова. |
| UnregisterConnection | Отменяет регистрацию обратного вызова подключения. |
| UnregisterDisconnection | Отменяет регистрацию обратного вызова разъединения. |
Унаследованные члены 7
Статические свойства
| Свойство | Описание |
|---|---|
| instance | Получает экземпляр Singleton. Unity создает экземпляр Singleton при первом доступе к этому свойству. Если вы используете FilePathAttribute, то Unity также загружает данные при первом доступе. |
Свойства
| Свойство | Описание |
|---|---|
| hideFlags | Должен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем? |
| name | Имя объекта. |
Открытые методы
| Метод | Описание |
|---|---|
| GetInstanceID | Получает экземпляр ID объекта. |
| ToString | Возвращает имя объекта. |
Защищенные методы
| Метод | Описание |
|---|---|
| Save | Сохраняет текущее состояние из ScriptableSingleton. |
Статические методы
| Метод | Описание |
|---|---|
| Destroy | Удаляет GameObject, компонент или ресурс. |
| DestroyImmediate | Немедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования. |
| DontDestroyOnLoad | Не уничтожать целевой Объект при загрузке нового Scene. |
| FindAnyObjectByType | Получает любой активный загруженный объект типа Type. |
| FindFirstObjectByType | Получает первый активный загруженный объект типа Type. |
| FindObjectsByType | Получает список всех загруженных объектов типа Type. |
| Instantiate | Клонирует исходный объект и возвращает клон. |
| InstantiateAsync | Захватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation. |
| CreateInstance | Создает экземпляр скриптового объекта. |
| GetFilePath | Получить путь к файлу, в котором сохранен этот ScriptableSingleton. |
Операторы
| Оператор | Описание |
|---|---|
| bool | Существует ли объект? |
| оператор!= | Сравнивает, если два объекта ссылаются на разные объекты. |
| оператор == | Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту. |
Сообщения
| Сообщение | Описание |
|---|---|
| Awake | Вызывается при создании экземпляра ScriptableObject. |
| OnDestroy | Эта функция вызывается, когда скриптовый объект будет уничтожен. |
| OnDisable | Эта функция вызывается, когда скриптовый объект выходит за пределы области действия. |
| OnEnable | Эта функция вызывается при загрузке объекта. |
| OnValidate | Функция только для редактора, которую вызывает Unity при загрузке скрипта или изменении значения в Inspector. |
| Reset | Сброс значений по умолчанию. |