使用Network实现简易聊天室
来源:互联网 发布:淘宝联合利华有假货吗 编辑:程序博客网 时间:2024/06/05 13:21
1,搭建场景如下图:
2,然后给Canvas上加载组件:NetworkView
3,然后编写如下脚本:
using UnityEngine;using UnityEngine.UI;/// <summary>/// 客户端/// </summary>public class NetworkDemo : MonoBehaviour { public Text Count; //连接信息 public int connections = 5; //连接数 public int Port = 4444; //端口号 public string SeverIp = "localhost"; // Use this for initialization void Start() { } void OnGUI () { if (GUI.Button(new Rect(10, 0, 100, 20),"创建服务器")) { NetworkConnectionError nc = Network.InitializeServer(connections, Port,false); if (nc == NetworkConnectionError.NoError) { Debug.Log("服务器创建成功"); Count.text += "服务器创建成功\n"; } } } //客户端连接服务器在客户端调用 public void OnConnectedToServer() { Debug.Log("房间创建成功成功"+Network.player.ipAddress); Count.text += "房间创建成功成功" + Network.player.ipAddress; } //客户端退出时调用 public void OnDisconnectedFromServer(NetworkDisconnection info) { Debug.Log("房间被房主解散"+Network.player.ipAddress); Count.text += "房间被房主解散" + Network.player.ipAddress; }}
using UnityEngine;using UnityEngine.UI;/// <summary>/// 服务器/// </summary>public class Connclient : MonoBehaviour{ public Text Count; //连接信息 public int connections = 5; //连接数 public int Port = 4444; //端口号,一定与客户端一致 public string SeverIp = "localhost"; // Update is called once per frame void OnGUI() { if (GUI.Button(new Rect(10, 50, 100, 20), "链接服务器")) { NetworkConnectionError nc = Network.Connect(SeverIp, Port); if (nc == NetworkConnectionError.NoError) { Debug.Log("链接服务器成功"); Count.text += "链接服务器成功\n"; } } } //当玩家链接到服务端,在服务端调用 void OnPlayerConnected(NetworkPlayer player) { Count.text += "当前连接数量:" + Network.connections.Length + "\n"; Count.text += "当前连接玩家Ip" + player.ipAddress; } //当玩家断开的时候,服务端调用 void OnPlayerDisconnected(NetworkPlayer player) { Count.text = "当前连接数量:" + Network.connections.Length + "\n"; Count.text += "当前断开玩家Ip" + player.ipAddress; } }
using UnityEngine;using UnityEngine.UI;/// <summary>/// 聊天信息管理类/// </summary>public class CharText : MonoBehaviour { public InputField InputFile; //输入内容 public Text Char; //聊天记录 public Button btn; //发送按钮 public NetworkView nerworkview; void Start () { //为按钮注册事件 btn.onClick.AddListener(QQChar); } //聊天方法 void QQChar() { nerworkview.RPC("SendMeg", RPCMode.All, InputFile.text); InputFile.text = ""; } [RPC] public void SendMeg(string str) { Char.text += str + "\n"; }}
4,发布选项上设置自动更新,如下图:
5,发布并且运行.exe文件,,(注意:只能有一个服务器(房主),可以运行多个客户端(加入房间的人))
运行结果图:
此示例是在一个项目在中使用的,也可以在两个项目中做,一个那样的话就有一个作为专门的服务器,一个做客户端,(即上面的客户端代码和服务器代码分开写,,,)
阅读全文
1 0
- 使用Network实现简易聊天室
- 使用Android网络编程实现简易聊天室
- 使用Android网络编程实现简易聊天室
- 使用Android网络编程实现简易聊天室
- 使用Android网络编程实现简易聊天室
- 使用Android网络编程实现简易聊天室
- javasocket实现简易聊天室
- DWR使用:文字提示功能实现、简易聊天室
- linux下使用UDP实现简易的多人聊天室
- Socket编程实现简易聊天室
- 使用Socket构建简易聊天室
- FMS两种方式实现简易聊天室
- 基于websocket的简易聊天室的实现
- 简易版的聊天室实现思路
- 简易聊天室
- 使用Html5下WebSocket搭建简易聊天室
- 在Android操作系统中如何使用Socket编程实现简易聊天室
- .Net Remoting 实现简易的"命令行控制台"聊天室
- 哈哈日语 五十音详细分析
- CCF CSP 路径解析 JAVA 201604-3 100分
- 【知了堂学习笔记】java中的编译命令和JVM性能调优监控工具
- C语言结构体的字节对齐原则
- Cookie
- 使用Network实现简易聊天室
- 鞍点
- 编程中的树根思维
- Error:Execution failed for task ':app:transformClassesWithDexForXiaomiRelease'.
- 计算机视觉(Computer Vision)参考资料
- python reduce函数
- Mnist数据集分析(13)---《深度学习》
- Error:Execution failed for task ':app:transformClassesWithDexForAnzhiRelease'. > com.android.build.a
- js对象及DOM