Sets up events for connecting to and sending data to the Player.
This is a singleton class and can be accessed using EditorConnection.instance.
This can only be used in a class that inherits from MonoBehaviour, Object or ScriptableObject.
Set the "Autoconnect Profiler" in the Build Settings or build the Player through code with the BuildPipeline using build options: BuildOptions.ConnectToHost and BuildOptions.Development to initialize the connection.
The Player ID is used to tell multiple connected Players apart. By default, data is sent to all Players. A connected Player's ID is not guaranteed to be the same the next time it connects.
#pragma strict
public class EditorConnectionExample extends EditorWindow {
    public static readonly var kMsgSendEditorToPlayer: Guid = new Guid("34d9b47f923142ff847c0d1f8b0554d9");
    public static readonly var kMsgSendPlayerToEditor: Guid = new Guid("12871ffeaf0c489189579946d8e0840f");
    @MenuItem("Test/EditorConnectionExample")
    static function Init() {
        var window: EditorConnectionExample = EditorConnectionExampleEditorWindow.GetWindow(EditorConnectionExample);
        window.Show();
        window.titleContent = new GUIContent("EditorConnectionExample");
    }
    function OnEnable() {
        EditorConnection.instance.Initialize();
        EditorConnection.instance.Register(kMsgSendPlayerToEditor, OnMessageEvent);
    }
    function OnDisable() {
        EditorConnection.instance.Unregister(kMsgSendPlayerToEditor, OnMessageEvent);
        EditorConnection.instance.DisconnectAll();
    }
    private function OnMessageEvent(args: MessageEventArgs) {
        var text: var = Encoding.ASCII.GetString(args.data);
        Debug.Log("Message from player: " + text);
    }
    function OnGUI() {
        var playerCount: var = EditorConnection.instance.ConnectedPlayers.Count;
        var builder: StringBuilder = new StringBuilder();
        builder.AppendLine(String.Format("{0} players connected.", playerCount));
        var i: int = 0;
        for (var p: var 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"));
        }
    }
}
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"));
        }
    }
}