Version: 2018.1
public static void SendToClient (int connectionId, short msgType, Networking.MessageBase msg);

Parameters

connectionIdClient connection ID.
msgMessage struct to send.
msgTypeMessage type.

Description

Send a message to the client which owns the given connection ID.

It accepts the connection ID as a parameter as well as a message and MsgType. Remember to set the client up for receiving the messages by using NetworkClient.RegisterHandler. Also, for user messages you must use a MsgType with a higher ID number than MsgType.Highest.

//The code shows how to set up a message, the MsgType and how to get the connectionID.
//It also shows how to send the message to the client, as well as receive it.
//Attach this script to a GameObject

using UnityEngine; using UnityEngine.Networking; using UnityEngine.Networking.NetworkSystem;

//Create a class for the message you send to the Client public class RegisterHostMessage : MessageBase { public string m_Name; public string m_Comment; }

public class Example : NetworkManager { RegisterHostMessage m_Message; //This is the Message Type you want to send to the Client. User messages must be above the Highest Message Type. public const short m_MessageType = MsgType.Highest + 1;

//Detect when a client connects to the Server public override void OnServerConnect(NetworkConnection connection) { //Change the message to read the Player's connection ID and a comment EditMessage("Player " + connection.connectionId, "Hi there."); //Send the new message to the Client using the Server NetworkServer.SendToClient(connection.connectionId, m_MessageType, m_Message); }

//On the Client's side, detect when it connects to a Server public override void OnClientConnect(NetworkConnection connection) { //Register and receive the message on the Client's side client.RegisterHandler(m_MessageType, ReceiveMessage); }

//Use this to edit the message to read what you want void EditMessage(string myName, string myComment) { m_Message = new RegisterHostMessage(); //Change the message name and comment to be the ones you set m_Message.m_Name = myName; m_Message.m_Comment = myComment; }

//Use this to receive the message from the Server on the Client's side public void ReceiveMessage(NetworkMessage networkMessage) { //Read the message that comes in RegisterHostMessage hostMessage = networkMessage.ReadMessage<RegisterHostMessage>(); //Store the name and comment as variables string receivedName = hostMessage.m_Name; string receivedComment = hostMessage.m_Comment;

//Output the Player name and comment Debug.Log("Player Name : " + receivedName); Debug.Log("Player Comment : " + receivedComment); } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961