【Unet】Unet Network Messages
来源:互联网 发布:win10打不开任何软件 编辑:程序博客网 时间:2024/05/21 11:11
Messages 消息传递机制
首先要注册 接收回调函数
服务器端
NetworkServer.RegisterHandler(chatMessage, ServerReceiveMessage);
客户端
NetworkManager.singleton.client.RegisterHandler(chatMessage, ReceiveMessage);
定义相同的聊天通道
private const short chatMessage = 131;(随便定义数字 保证相互通信的chatMessage 一样)
发送消息 CS 公用一个 Send
NetworkManager.singleton.client.Send(chatMessage, myMessage);
会直接先回调到 服务器的接收函数 然后通过服务器接收函数中的
NetworkServer.SendToAll(chatMessage, myMessage);
发送给所有客户端(当然也有指定发送某个客户端)
NetworkServer.SendToClient(1, chatMessage, myMessage);
剩下具体方法可查API
还有就是传递的消息
系统内置的是有三种
EmptyMessage
StringMessage
IntegerMessage
首先要注册 接收回调函数
服务器端
NetworkServer.RegisterHandler(chatMessage, ServerReceiveMessage);
客户端
NetworkManager.singleton.client.RegisterHandler(chatMessage, ReceiveMessage);
定义相同的聊天通道
private const short chatMessage = 131;(随便定义数字 保证相互通信的chatMessage 一样)
发送消息 CS 公用一个 Send
NetworkManager.singleton.client.Send(chatMessage, myMessage);
会直接先回调到 服务器的接收函数 然后通过服务器接收函数中的
NetworkServer.SendToAll(chatMessage, myMessage);
发送给所有客户端(当然也有指定发送某个客户端)
NetworkServer.SendToClient(1, chatMessage, myMessage);
剩下具体方法可查API
还有就是传递的消息
系统内置的是有三种
EmptyMessage
StringMessage
IntegerMessage
当然官方也提供自己定义的类 只要继承与MessageBase即可
当然通信的前提 你需要开启 服务器 连入客户端 可以使用代码也可以添加NetWorkManager组件 + HUD 配合 达到通信效果
using UnityEngine;using UnityEngine.Networking;using UnityEngine.Networking.NetworkSystem;public class UNETChat : Chat{ //just a random number private const short chatMessage = 131; private void Start() { //if the client is also the server if (NetworkServer.active) { //registering the server handler NetworkServer.RegisterHandler(chatMessage, ServerReceiveMessage); } //registering the client handler NetworkManager.singleton.client.RegisterHandler(chatMessage, ReceiveMessage); } private void ReceiveMessage(NetworkMessage message) { //reading message string text = message.ReadMessage<StringMessage>().value; AddMessage(text); } private void ServerReceiveMessage(NetworkMessage message) { StringMessage myMessage = new StringMessage(); //we are using the connectionId as player name only to exemplify myMessage.value = message.conn.connectionId + ": " + message.ReadMessage<StringMessage>().value; //send to all connected clients NetworkServer.SendToAll(chatMessage, myMessage); NetworkServer.SendToClient(1, chatMessage, myMessage); } public void SendMessage() { StringMessage myMessage = new StringMessage(); send NetworkManager.singleton.client.Send(chatMessage, myMessage); }}
阅读全文
0 0
- 【Unet】Unet Network Messages
- 【Unet】Unet Network相关组件
- Unity5.1 新的网络引擎UNET(五) UNET Network Messages
- Unet】Unet Network Messages 序列化与反序列化(二)
- 【Unet】Unet 初步了解
- 【Unet】Unet 同步变量
- Unet介绍
- Unet Unity3d
- Unet学习
- 【Unet】Unet 物体的派生
- 【UNet】初识Unity Network,制作一个简单的网络聊天室
- 【Unet】Unet 客户端 与 服务器行为
- 【Unet】unet spwan动态生成 物体
- 【Unet】Unet动态添加多个主角
- 【Unet】Unet Networked Events 事件同步
- Unity UNet 常见问题整理
- UNET SyncVar同步信息
- Unet同步问题
- 第三方登陆原理
- POJ2155_Matrix_二维树状数组
- Linux sed
- 如果list中的对像的编号相同就把对像合并,并将数量相加
- jquery根据字符串长度限定,截取字符串
- 【Unet】Unet Network Messages
- C# 获取应用程序物理地址(运行DLL的物理地址)
- 验证码
- 整型规划的凸松弛(Convex Relaxation in Integer Programming)
- HYSBZ
- About android mk parameters
- 进程与线程
- 串口热插拔的实现
- 对动态网页进行逆向工程