NetWorkServer.cs

 using UnityEngine;
using System.Collections; public class NetWorkServer : MonoBehaviour
{
// Use this for initialization
// 定义远程连接IP地址
private string remoteIP = "127.0.0.1";
// 定义远程的端口号
private int remotePort = ;
// 定义本地侦听的端口号
private int listenPort = ;
// 限制连接数量为15个用户
private int connectCount = ;
// 是否启用网络地址转换器
private bool useNAT = false; void OnGUI ()
{
switch (Network.peerType) {
case NetworkPeerType.Disconnected:
// 服务器未开启时,开启服务器
StartConnect ();
break;
case NetworkPeerType.Server:
// 成功连接服务器
OnServer ();
break;
case NetworkPeerType.Client:
break;
case NetworkPeerType.Connecting:
break;
}
} void StartConnect ()
{
remoteIP = GUI.TextField (new Rect (, , , ), remoteIP); if (GUI.Button (new Rect (, , , ), "创建服务器")) { Network.incomingPassword = "UnityNetwork";
NetworkConnectionError error = Network.InitializeServer (connectCount, remotePort, useNAT);
Debug.Log (error);
}
} void OnServer ()
{
GUILayout.Label (" 服务端创建成功。等待连接····"); // 得到的 IP 与端口
string ip = Network.player.ipAddress;
int port = Network.player.port;
GUILayout.Label (" ip地址:" + ip + ".\n 端口号码:" + port); // 连接到服务器的所有客户端
int connectLength = Network.connections.Length; // 遍历所有客户端并获取IP与端口号
for (int i = ; i < connectLength; i++) {
GUILayout.Label (" 连接的IP:" + Network.connections [i].ipAddress);
GUILayout.Label (" 连接的端口:" + Network.connections [i].port);
} if (GUI.Button (new Rect (, , , ), "断开连接")) {
// 从服务器上断开连接
Network.Disconnect ();
}
} void OnPlayerConnected (NetworkPlayer player)
{ GetComponent<NetworkView> ().RPC ("OnNetworkLoaded", RPCMode.Others, player); } void OnPlayerDisconnected (NetworkPlayer player)
{
Debug.Log ("清除对象: " + player);
Network.RemoveRPCs (player);
Network.DestroyPlayerObjects (player);
} }

NetWorkColient.cs

 using UnityEngine;
using System.Collections; public class NetWorkColient : MonoBehaviour
{ // Use this for initialization
// 定义远程 IP 地址
private string remoteIP = "127.0.0.1";
// 定义侦听端口
private int listenPort = ;
// 是否开启网络 IP 转换器
private bool useNAT = false; private string ChatMessage = "Client Ready"; void OnGUI ()
{ switch (Network.peerType) {
case NetworkPeerType.Disconnected:
StartConnect ();
break;
case NetworkPeerType.Client:
ClientTo ();
break;
case NetworkPeerType.Connecting:
Debug.Log ("Connecting...");
break;
}
} void StartConnect ()
{
if (GUI.Button (new Rect (, , , ), "Connect Server")) {
NetworkConnectionError error = Network.Connect (remoteIP, listenPort, "UnityNetwork");
Debug.Log (error);
}
} void ClientTo ()
{ GUILayout.Label ("Connected"); } void OnConnectedToServer ()
{
// 通知场景中的物体已经与服务端连接
foreach (GameObject go in FindObjectsOfType(typeof(GameObject))) {
go.SendMessage ("OnNetworkLoaded", SendMessageOptions.DontRequireReceiver);
} } void OnDisconnectedFromServer (NetworkDisconnection info)
{ Network.RemoveRPCs (Network.player);
Network.DestroyPlayerObjects (Network.player);
Application.LoadLevel (Application.loadedLevel); } }

Unity 多人网络连接的更多相关文章

  1. Unity如何判断网络连接类型

    今天遇到了一个问题,如何判断手机游戏当前的网络连接类型,是wifi还是234G? 起初准备在Android中写好插件供Unity调用,后来在网上浏览众神的帖子时,在csdn上看到了使用NetworkR ...

  2. Unity判断网络连接类型

    使用NetworkReachability判断手机游戏当前的网络连接类型,是wifi还是234G using UnityEngine; using System.Collections; public ...

  3. Linux 查看主机、CPU、内存、内核、网卡或MAC地址、关机、重启、当前使用人、网络连接状态、主机目前使用状态

    7 uname -a 显示主机名.内核.硬件结构等全部信息 unmae -r 只显示内核 查看Redhat和centos的内核版本也可以用cat /etc/redhat-release 或cat /e ...

  4. linux虚拟机网络连接模式 bridged, host-only, NAT

    最近安装了fedora9.0,却一直不能连接到外网,我用的是3G无线网卡上网的,起初以为是linux不支持3G无线方式的,可后来装了虚拟机ubuntu却可以上网,在后来用有ADSL网络连接的电脑安装f ...

  5. VMware 虚拟机的网络连接方式详解

         VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作 ...

  6. 随记PC-win7 64位系统网络连接状态一直转圈、等待状态的异常解决方案

    各位看官好~ 最近电脑也做了下升级,入手个士必得360G的SSD来玩玩,顺便也下个新系统,看看有什么区别,想想顺便升级下系统也是好的,就开始了装机,装系统的路程~~~~~~ 好了不说废话,直接进入主题 ...

  7. 百度APP移动端网络深度优化实践分享(二):网络连接优化篇

    本文由百度技术团队“蔡锐”原创发表于“百度App技术”公众号,原题为<百度App网络深度优化系列<二>连接优化>,感谢原作者的无私分享. 一.前言 在<百度APP移动端网 ...

  8. Linux虚拟机的三种网络连接方式

    Linux虚拟机的三种网络连接方式 虚拟机网络模式 无论是vmware,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2.NAT 3.Host- ...

  9. VMware网络连接模式——桥接模式、NAT模式以及仅主机模式的介绍和区别

    在使用VMware Workstation(以下简称:VMware)创建虚拟机的过程中,配置虚拟机的网络连接是非常重要的一环,当我们为虚拟机配置网络连接时,我们可以看到如下图所示的几种网络连接模式:桥 ...

随机推荐

  1. 关于php条形码生成(barcode),修改样式

    今天听错了需求,以为要重新设计条形码,第一次制作这个,经过搜索使用的barcode这个第三方的,具体使用步骤网上很多就不在这里详细介绍了.主要是今天遇到的样式修改问题: barcode经过查看是无法自 ...

  2. [leetcode]30. Substring with Concatenation of All Words由所有单词连成的子串

    You are given a string, s, and a list of words, words, that are all of the same length. Find all sta ...

  3. java_21 Set接口、HashSet类、LinkedSet类

    1Set 包含不可重复元素的集合,是一个无序集合. 子类:hashSet .LinkedSet 2.含有父类Collection的方法 add(): 如果 set 中尚未存在指定的元素,则添加此元素( ...

  4. Mybatis配置问题解决Invalid bound statement (not found)

    首先这个异常的原因是系统根据Mapper类的方法名找不到对应的映射文件. 网上也搜索了到了类似的文章,一般可以从以下几个点排查: mapper.xml的namespace要写所映射接口的全称类名,而且 ...

  5. Android R文件介绍

    R.java 文件中默认有attr.drawable.layout.string等色哥静态内部类,每个静态内部类分别对应着一种资源,如layout静态内部类对应着layout中的接界面文件,其中每个静 ...

  6. 3R - 单词数

    lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. Input 有多组数据,每组一行,每组就 ...

  7. 2018php最新面试题之PHP核心技术

    一.PHP核心技术 1.写出一个能创建多级目录的PHP函数(新浪网技术部) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php ...

  8. Node.js web发布到AWS ubuntu 之后,关闭Putty,Node 项目也随之关闭的解决办法

    最近公司把BlockChain和对应的Node Web都发布到了AWS 的ubuntu 系统上. 但是遇到了一个问题,每次启动 Node Web之后,关闭Putty,Node Web也随之关闭. 由于 ...

  9. redis在游戏服务器中的使用初探(一) 环境搭建

    这里我们尝试在游戏服务器中的数据处理中使用redis 通过该系列文章能够学习 redis的基本操作 源码编译 客户端开源库的编译和使用 以及在游戏服务器中的缓存使用 作为初次摸索 尽量使得环境简单  ...

  10. Django 载入静态文件地址

    1,Django框架中有专门存放静态文件的目录. 项目中的CSS.图片.js都是静态文件 配置静态文件 在settings 文件中定义静态内容 2,这些静态文件,他们统一存放在项目目录,templat ...