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

PlayerConnectionGUI.ConnectionTargetSelectionDropdown

Объявление

public static void ConnectionTargetSelectionDropdown(Rect rect, Networking.PlayerConnection.IConnectionState state, GUIStyle style);

Параметры

rect Где нарисовать раскрывающуюся кнопку.
state Состояние соединения, которое используется в EditorWindow, отображающем этот раскрывающийся список. Используйте PlayerConnectionGUIUtility.GetConnectionState, чтобы получить состояние в OnEnable, и не забудьте удалить это состояние в OnDisable.
style Определите стиль GUIStyle, в котором должна отображаться кнопка раскрывающегося списка. Если стиль не указан, будет отображаться кнопка раскрывающегося списка по умолчанию.

Описание

Отобразить раскрывающуюся кнопку и меню, чтобы пользователь мог выбрать и установить соединение с проигрывателем.

Это тот же элемент управления, который используется на панелях инструментов окна Profiler, Frame Отладчик или окно консоли. В раскрывающемся списке будут перечислены все доступные игроки и редакторы, к которым ваш редактор может подключиться и которые доступны для обнаружения. Он также предлагает запись для прямого подключения к IP-адресу. Вам нужно будет указать состояние соединения, используемого для вашего EditorWindow. Чтобы получить его, используйте PlayerConnectionGUIUtility.GetConnectionState в OnEnable и не забудьте удалить состояние в OnDisable из EditorWindow вы используете его в.

В настоящее время этот класс работает только для подключения, используемого инструментами профилирования и консолью. В будущем выпуске это будет работать с PlayerConnection.

using UnityEngine; using UnityEngine.Profiling; using UnityEditor; using UnityEngine.Networking.PlayerConnection; using UnityEditor.Networking.PlayerConnection; public class MyWindow : EditorWindow { // Состояние может сохраняться на протяжении всего времени существования EditorWindow, поэтому лучше всего хранить его здесь и просто обновлять/удалять в OnEnable и OnDisable, а не повторно извлекать его в В графическом интерфейсе. IConnectionState attachProfilerState; [MenuItem("Window/My Window")] static void Init() { MyWindow window = (MyWindow)GetWindow(typeof(MyWindow)); window.Show(); } private void OnEnable() { // The state of the connection is not getting serialized and needs to be disposed // Therefore, it's recommended to fetch it in OnEnable and call Dispose() on it in OnDisable attachProfilerState = PlayerConnectionGUIUtility.GetConnectionState(this, OnConnected); } private void OnConnected(string player) { Debug.Log(string.Format("MyWindow connected to {0}", player)); } private void OnGUI() { // Draw a toolbar across the top of the window and draw the drop-down in the toolbar drop-down style too EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); var rect = GUILayoutUtility.GetRect(100, EditorGUIUtility.singleLineHeight, EditorStyles.toolbarDropDown); PlayerConnectionGUI.ConnectionTargetSelectionDropdown(rect, attachProfilerState, EditorStyles.toolbarDropDown); switch (attachProfilerState.connectedToTarget) { case ConnectionTarget.None: //This case can never happen within the Editor, since the Editor will always fall back onto a connection to itself. break; case ConnectionTarget.Player: Profiler.enabled = GUILayout.Toggle(Profiler.enabled, string.Format("Profile the attached Player ({0})", attachProfilerState.connectionName), EditorStyles.toolbarButton); break; case ConnectionTarget.Editor: // The name of the Editor or the PlayMode Player would be "Editor" so adding the connectionName here would not add anything. Profiler.enabled = GUILayout.Toggle(Profiler.enabled, "Profile the Player in the Editor", EditorStyles.toolbarButton); break; default: break; } EditorGUILayout.EndHorizontal(); } private void OnDisable() { // Remember to always dispose of the state! attachProfilerState.Dispose(); } }

Также см. PlayerConnectionGUI.ConnectionTargetSelectionDropdown для автоматических макетов, а также PlayerConnectionGUIUtility.GettionState и IConnectionState для получения сведений об обработке состояния для этого элемента управления пользовательского интерфейса.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3