版本: Unity 6 (6000.0)
语言英语
  • C#

EditorConnection

UnityEditor.Networking.PlayerConnection 中的类

/

继承自:ScriptableSingleton_1


实现接口:IEditorPlayerConnection

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每个建议更改,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

处理编辑器与播放器之间的连接。

设置连接到播放器并向其发送数据的事件。

这是一个单例类,可以使用 EditorConnection.instance 访问。

这只能在继承自 MonoBehaviour、Object 或 ScriptableObject 的类中使用。

在构建设置中设置“自动连接分析器”,或使用 BuildPipeline 和构建选项通过代码构建播放器:BuildOptions.ConnectToHostBuildOptions.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取消注册断开连接回调。

继承的成员

静态属性

instance获取单例的实例。当第一次访问此属性时,Unity 会创建单例实例。如果您使用 FilePathAttribute,则 Unity 也会在第一次访问时加载数据。

属性

hideFlags对象是否应隐藏、与场景一起保存或用户可修改?
name对象的名称。

公共方法

GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

受保护的方法

Save保存 ScriptableSingleton 的当前状态。

静态方法

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议您使用 Destroy 代替。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索类型为 type 的任何活动加载对象。
FindFirstObjectByType检索类型为 type 的第一个活动加载对象。
FindObjectsByType检索类型为 type 的所有加载对象的列表。
Instantiate克隆对象 original 并返回克隆。
InstantiateAsync捕获原始对象(必须与某些 GameObject 相关)的快照,并返回 AsyncInstantiateOperation。
CreateInstance创建可脚本化对象的实例。
GetFilePath获取保存此 ScriptableSingleton 的文件路径。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用是否引用同一个对象。

消息

Awake创建 ScriptableObject 的实例时调用。
OnDestroy当可脚本化对象将被销毁时调用此函数。
OnDisable当可脚本化对象超出范围时调用此函数。
OnEnable加载对象时调用此函数。
OnValidate编辑器专用函数,当加载脚本或检查器中的值更改时,Unity 会调用此函数。
Reset重置为默认值。