位置: 编程技术 - 正文

Unity网络编程NetworkView组件使用(unity网络模块)

编辑:rootadmin

推荐整理分享Unity网络编程NetworkView组件使用(unity网络模块),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity网络编程两个物体的交互代码,unity网络编程两个物体的交互代码,unity网络模块,unity网络编程两个物体的交互代码,unity网络编程框架,unity网络编程两个物体的交互代码,unity网络编程框架,unity网络编程框架,内容如对您有帮助,希望把文章链接给更多的朋友!

废话不多说:先上代码

服务器端脚本:

/// <summary>

/// Unity server.

Unity网络编程NetworkView组件使用(unity网络模块)

/// Create by Cui Yongduo

/// date: -- :

/// </summary>using UnityEngine;using System.Collections;public class UnityServer : MonoBehaviour { int port = ;//端口号 bool isInitialized = false;//服务器是否初始化完成 bool isPlayerConnected = false; NetworkPlayer tempPlayer;//进入当前游戏的玩家 int HP = ; string msg = "";//服务器端接受客户端的消息 void OnGUI () { switch (Network.peerType) { case NetworkPeerType.Disconnected: // 没有连接时可点击按钮创建服务器 StartServer(); break; case NetworkPeerType.Server: // 服务器创建成功后,开始监听客户请求 WaitClient(); break; case NetworkPeerType.Client: break; case NetworkPeerType.Connecting: break; } } void StartServer () { if (GUI.Button(new Rect(0,0,,),"创建服务器")) { // 初始化服务器 NetworkConnectionError error = Network.InitializeServer(,port,false); Debug.LogWarning("创建服务器" &#; error); // 公司的MasterServer MasterServer.ipAddress = "...1"; MasterServer.port = ; MasterServer.RegisterHost("DouDiZhu",""); } } // 服务器初始化完成时调用以下响应函数(类&#;回调函数,Message) void OnServerInitialized() { isInitialized = true; Debug.Log("Server initialized and ready"); } // 当玩家连接时,自动调用该函数(Message) void OnPlayerConnected(NetworkPlayer player) { isPlayerConnected = true; tempPlayer = player; Debug.Log("Player" &#; " connected from " &#; player.ipAddress &#; ":" &#; player.port); } void WaitClient () { if (isInitialized) { GUILayout.Label("服务器已经初始化完成,等待客户端请求"); } if (isPlayerConnected) { GUILayout.Label("新玩家进入游戏: " &#; tempPlayer &#; ":" &#; tempPlayer.ipAddress &#; tempPlayer.port); } //显示所有连接信息 int length = Network.connections.Length; for (int i = 0; i < length; i&#;&#;) { GUILayout.Label("ID:" &#; i &#; "IP:" &#; Network.connections[i].ipAddress &#; "port:" &#; Network.connections[i].port); } GUILayout.Label(msg); if (HP >= 0) { GUILayout.Label("血量: " &#; HP); } else { GUILayout.Label("血量: 0" ); } if (GUI.Button(new Rect(,0,,),"断开服务器")) { Network.Disconnect(); } } [RPC] void ReceiveMsg (string txt) { //将客户端的参数赋&#;给服务器端 msg = txt; } [RPC] void BeAttacked () { if (HP > 0) { HP--; } }

}

客户端脚本:

/// <summary>/// Unity client./// Create by Cui Yongduo/// date:-- 2:/// </summary>using UnityEngine;using System.Collections;public class UnityClient : MonoBehaviour { string IP = "..."; //IP地址 int port = ; //端口号 bool isConnectedToServer; //是否连接成功 // 根据不同的网络状态生成不同的界面 void OnGUI () { switch (Network.peerType) { // 公有四种网络状态 case NetworkPeerType.Disconnected: ConnectToServer();//自定义连接服务器方法 break; case NetworkPeerType.Client: BeClient();//自定义方法 break; case NetworkPeerType.Connecting: BeConnecting(); break; case NetworkPeerType. break; } } // 自定义连接服务器方法 void ConnectToServer () { // 创建连接服务器按钮 if (GUI.Button(new Rect(0,0,,),"连接服务器")) { // 调用Network类的Connect方法建立连接 NetworkConnectionError error = Network.Connect(IP,port); Debug.LogWarning("ConnectToServer:" &#; error); // 请求斗地主服务器 MasterServer.RequestHostList("DoDiZhu"); } HostData[] hosts = MasterServer.PollHostList(); } void BeClient () { GUILayout.Label("Client"); //客户端调用服务器端的RPC函数 //RPCMode.Others:调用其他所有主机的RPC函数 //RPCMode.OthersBuffer:调用其他所有主机的RPC函数,并写入缓存 networkView.RPC("ReceiveMsg",RPCMode.Server,"Hi,I'm Client!!!"); if (GUILayout.Button("攻击")) { networkView.RPC("BeAttacked",RPCMode.Server); } } void BeConnecting () { GUILayout.Label("Connecting"); } [RPC] void ReceiveMsg (string txt) { //注意:客户端要有和服务器端相同的RPC方法声明 } [RPC] void BeAttacked () { } }

Unity蛮牛教程噩梦射手----代码讲解(1) 很久没有写博客了,因为最近开始学习Unity。在蛮牛教育网上有一套讲解Unity官方教程的视频-------噩梦射手游戏实例,网站为

【猫猫的Unity Shader之旅】之透明材质 现实生活中有许多半透明的情形:玻璃、饮料瓶、塑料袋等等。半透明一个很重要的特点就是可以显示它后面的物体的部分颜色。这个部分具体是多少

资源加载卸载与内存的关系 关于Resources.load和实例化与内存的关系:1.加载,单纯的Resources.load后消耗的内存很低,可能只是基础的引用预载、当对象被实例化后才会占用大量内存

标签: unity网络模块

本文链接地址:https://www.jiuchutong.com/biancheng/380149.html 转载请保留说明!

上一篇:PHP实现用户登录和注册的功能(php实现登录功能)

下一篇:Unity蛮牛教程噩梦射手----代码讲解(1)(unity manifest)

  • 滴滴电子普通发票怎么抵扣
  • 工会可以现金支付吗
  • 烟丝是消费税的征收范围
  • 小微企业公司章程范本
  • 供热管道属于什么经营范围内
  • 零星小额交易要交税吗
  • 房地产公司转让土地
  • 商场促销的税务处理怎么做?
  • 湖南残保金减免优惠政策2020
  • 以资抵债是利空还是利好
  • 计提工资和应付职工薪酬怎么不一样
  • 公司增资麻烦吗?
  • 从国外进口的免税商品
  • 销售佣金税点
  • 不动产经营租赁属于现代服务吗
  • 购买办公桌椅属于什么费用
  • 现金银行存款日记账日清月结
  • 支出凭证的日期
  • 预计负债什么时候确认
  • 鸿蒙工具栏在哪里
  • 苹果Mac电脑怎么锁屏
  • 公司基本户注销流程
  • 卖废旧物品账务处理
  • 如何在Windows11上下载和安装 Minecraft
  • 已认证进项税发票可抵扣么
  • 萨勒克国家公园课文
  • php读取json数组中指定内容
  • 朝圣者将风马旗扔向甘登寺上方的空中为新年祈福,中国西藏 (© Ian Cumming/plainpicture)
  • 应付账款重分类含不含暂估
  • CLIP(Contrastive Language-Image Pre-Training)简介
  • js前端路由
  • 包装物应交消费税
  • 微信小程序实训内容
  • 其他收益所得税汇算清缴时需要调增吗
  • 临过期产品
  • 织梦如何使用不侵权
  • mysql数据库最新版
  • 购入画图软件
  • 税金及附加如何预测
  • 营运资金为正数说明企业什么
  • 简单的记账方法叫什么
  • 文化事业建设费报告表
  • 如何使用灭火器的方法
  • 公司处理旧车增值税怎么交
  • 小规模纳税属于什么科目
  • 企业自查发现以什么为主
  • 其他综合收益的来源
  • 出售子公司股权合并报表的会计处理
  • 未交增值税不用交了
  • 单式记账法缺点是什么
  • 经纪代理服务范围
  • 企业亏损应纳税所得额怎么填
  • 未确认融资费用借贷方向
  • 物业公司代业主委员会收公共收益怎么开发票
  • 公司运营成本如何计算
  • 定额的餐饮发票
  • 研发支出资本化支出在资产负债表哪里体现
  • 赊销是什么意思 视频
  • 拿到营业执照后需要做的事
  • 设置会计账簿应当遵循的基本原则有
  • sqlserver通用的删除服务器上的所有相同后缀的临时表
  • windows2003怎么升级
  • win7网页无法访问
  • xp系统镜像文件怎么制作
  • 如何在xp系统中调整移动硬盘
  • linux grub2
  • 电脑蓝屏0X0000007B
  • 如何解决win7系统卡顿
  • window7系统清理
  • 深入解析windows第7版
  • 关于我和鬼变成家人的那件事
  • formatter参数
  • Python类的继承动物类
  • 如何自定义手机图标
  • python如何切行
  • 新办企业税务局注册流程
  • 资产划转是什么会计科目
  • 小规模纳税人企业所得税2023税率
  • 公司财税知识
  • 增值税率下降
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设