Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Unity主服务器与简单客户端服务器_Android_Unity3d_Client Server_Wifi_Unityscript - Fatal编程技术网

Android Unity主服务器与简单客户端服务器

Android Unity主服务器与简单客户端服务器,android,unity3d,client-server,wifi,unityscript,Android,Unity3d,Client Server,Wifi,Unityscript,我已经写了两个程序,我希望这两个都在我的android设备上运行,它们在同一个网络上,但一个是简单的客户端-服务器程序,它将在这两个设备上运行,并将建立连接…但Unity Master server将无法正常运行,无法连接同一网络上的两个android wifi设备,因此程序将在本地主机上正常运行。 下面是简单的客户机-服务器代码。此代码运行良好 var object:Transform; static var Isconnected:boolean=false; //172.16.11.4

我已经写了两个程序,我希望这两个都在我的android设备上运行,它们在同一个网络上,但一个是简单的客户端-服务器程序,它将在这两个设备上运行,并将建立连接…但Unity Master server将无法正常运行,无法连接同一网络上的两个android wifi设备,因此程序将在本地主机上正常运行。 下面是简单的客户机-服务器代码。此代码运行良好

var object:Transform;
 static var Isconnected:boolean=false;
//172.16.11.4
function Start()
{
Application.runInBackground = true;
Debug.Log("run in back groud");
}
function Update()
{
if(Isconnected)
  var temp:Transform;
  temp=Instantiate(object,transform.position, transform.rotation);
}
function OnGUI()
{
if(Network.peerType==NetworkPeerType.Disconnected)
{
  if(GUILayout.Button(" Initlized server"))
  {
   var useNat = !Network.HavePublicAddress();
   Network.InitializeServer(32,25001,useNat);
   Debug.Log("Server has been Initlized");
  }
 } 
  if(GUILayout.Button("connect to server"))
  {
    Network.Connect("172.16.11.4",25001);
  }
}
function OnConnectedToServer() {
    Debug.Log("Connected to server");
    Isconnected=true;
    // Send local player name to server ...
}
但是,如果我们提供ip 127.0.0.1,这段代码将不会在wifi上运行…而这段代码将在本地主机上运行

#pragma strict
private var rotAngle : float = 0;
private var pivotPoint : Vector2;
var Gamename:String="MyGame";
var refreshing:boolean=false;
private var hostdata:HostData[];

function Start () {

}

function Update () {
var farword=Input.GetKey("up");
if(farword==true)
{
//animation.Play("ArmatureAction");

}
transform.Translate(0,0,Input.GetAxis("Vertical"));
transform.Rotate(0,Input.GetAxis("Horizontal"),0);
if(refreshing)
{
if(MasterServer.PollHostList().Length>0)
{
refreshing=false;
hostdata=MasterServer.PollHostList();
Debug.Log(MasterServer.PollHostList().Length);

}
}



}
function startServer()
{
Network.InitializeServer(32,25001,!Network.HavePublicAddress);
MasterServer.RegisterHost(Gamename,"THis is tutorial","THis is tutorial game");
}
function OnServerInitialized()
{
Debug.Log("Sever is initlized");
}
function OnMasterServerEvent(mgs:MasterServerEvent)
{
if(mgs==MasterServerEvent.RegistrationSucceeded)
{
Debug.Log("Register server");
}



}
function refreshHostList(){
MasterServer.RequestHostList(Gamename);
  refreshing=true;

}







function OnGUI()
{
if((!Network.isClient && !Network.isServer))
{
if(GUI.Button(Rect(100,100,100,100),"Start Sever"))
{
Debug.Log("Start Server");
startServer();
}
if(GUI.Button(Rect(100,220,100,100),"Refresg Hosts"))
{
Debug.Log("Refresh HOsts");
refreshHostList();
}

if(hostdata)
{
for(var i:int=0;i<hostdata.length;i++)
{
 if(GUI.Button(Rect(230,100,100,100),hostdata[i].gameName))
 {
 Network.Connect("172.16.11.4",25001);
 }
}
}
}
if(GUI.Button(Rect(300,300,100,100),"back"))
{
transform.Translate(9,0,0);
}
if(GUI.Button(Rect(300,400,100,100),"farword"))
{
transform.Translate(-9,0,0);
}

}
#pragma strict
私有变量旋转角度:浮点=0;
私有变量枢轴点:向量2;
var Gamename:String=“MyGame”;
变量刷新:布尔值=false;
私有var hostdata:hostdata[];
函数启动(){
}
函数更新(){
var farword=Input.GetKey(“up”);
如果(farword==true)
{
//动画。播放(“武器行动”);
}
transform.Translate(0,0,Input.GetAxis(“垂直”);
旋转(0,Input.GetAxis(“水平”),0);
如果(刷新)
{
if(MasterServer.PollHostList().Length>0)
{
刷新=错误;
hostdata=MasterServer.PollHostList();
Log(MasterServer.PollHostList().Length);
}
}
}
函数startServer()
{
Network.InitializeServer(3225001,!Network.HavePublicAddress);
RegisterHost(游戏名,“这是教程”,“这是教程游戏”);
}
函数OnServerInitialized()
{
Log(“服务器已初始化”);
}
函数OnMasterServerEvent(mgs:MasterServerEvent)
{
if(mgs==MasterServerEvent.registrationsucceed)
{
Log(“注册服务器”);
}
}
函数refreshHostList(){
MasterServer.RequestHostList(游戏名称);
刷新=真;
}
函数OnGUI()
{
if((!Network.isClient&&!Network.isServer))
{
if(GUI按钮(Rect(100100),“启动服务器”))
{
Log(“启动服务器”);
startServer();
}
if(GUI按钮(Rect(100220100100),“Refresg主机”))
{
Log(“刷新主机”);
刷新主机列表();
}
if(主机数据)
{
对于(var i:int=0;i我在第二个代码中思考

if(hostdata) 
{ 
for(var i:int=0;i<hostdata.length;i++) 
{ 
  if(GUI.Button(Rect(230,100,100,100),hostdata[i].gameName)) 
  { 
  Network.Connect("172.16.11.4",25001); 
  } 
} 
if(主机数据)
{ 
对于(变量i:int=0;i
if(hostdata) 
{ 
for(var i:int=0;i<hostdata.length;i++) 
{ 
  if(GUI.Button(Rect(230,100,100,100),hostdata[i].gameName)) 
  { 
   Network.Connect(hostdata[i]); //Or Network.Connect( hostdata[i].ip[ 0 ], hostdata[i].port ); 
  } 
} 
if(hostdata) 
{ 

 var y = 100;  // or other start y position like 0
 for(var i:int=0;i<hostdata.length;i++) 
 { 

  if(GUI.Button(Rect(230,y,100,100),hostdata[i].gameName)) 
  { 
   Network.Connect(hostdata[i]); //Or Network.Connect( hostdata[i].ip[ 0 ], hostdata[i].port ); 
  } 
  y+=100+ 5 //Some padding.
}