Networking 网络无法连接到服务器c#unity5
我在unity5中完成了网络C#script。 这是基于 在30分钟的教程之前,一切都很顺利。 我做了构建,运行它,在构建中启动服务器,然后在unity开始游戏中,刷新主机,弹出一个服务器,我点击它,什么也没发生,然后我收到消息:连接到10.0.0.100:25001失败,因为这个系统已经连接。当网络连接断开得太快,远程系统无法接收断开通知时,例如在使用network.disconnect(0)时,可能会发生这种情况 我的剧本:Networking 网络无法连接到服务器c#unity5,networking,unity3d,Networking,Unity3d,我在unity5中完成了网络C#script。 这是基于 在30分钟的教程之前,一切都很顺利。 我做了构建,运行它,在构建中启动服务器,然后在unity开始游戏中,刷新主机,弹出一个服务器,我点击它,什么也没发生,然后我收到消息:连接到10.0.0.100:25001失败,因为这个系统已经连接。当网络连接断开得太快,远程系统无法接收断开通知时,例如在使用network.disconnect(0)时,可能会发生这种情况 我的剧本: public class NetworkManager : Mon
public class NetworkManager : MonoBehaviour {
public string gameName = "DP_Network_server";
private bool refreshing;
private HostData[] hostList;
void OnGUI() {
if (!Network.isClient && !Network.isServer) {
if (GUI.Button (new Rect (10, 10, 150, 100), "Start Server")) {
Debug.Log ("Starting Server");
startServer ();
}
if (GUI.Button (new Rect (10, 200, 150, 100), "Refresh Hosts")) {
Debug.Log ("Refreshing");
refreshHostList ();
}
if (hostList != null) {
for (int i = 0; i < hostList.Length; i++) {
GUI.Button (new Rect (400, 100 + (110 * i), 300, 100), hostList [i].gameName);
Network.Connect (hostList [i]);
}
}
}
}
void startServer() {
Network.InitializeServer(32, 25001, !Network.HavePublicAddress());
MasterServer.RegisterHost(gameName, "Double Planet Game", "This is test of networking");
}
void OnServerInitialized()
{
Debug.Log("Server Initializied");
}
void OnMasterServerEvent (MasterServerEvent mse) {
if (mse == MasterServerEvent.RegistrationSucceeded) {
Debug.Log ("Registered Server");
}
}
void refreshHostList() {
MasterServer.RequestHostList(gameName);
refreshing = true;
}
void Update (){
if (refreshing) {
if (MasterServer.PollHostList().Length > 0) {
refreshing = false;
Debug.Log (MasterServer.PollHostList ().Length);
hostList = MasterServer.PollHostList();
}
}
}
公共类网络管理器:MonoBehavior{
公共字符串gameName=“DP\U网络\U服务器”;
私人厕所;
私有主机数据[]主机列表;
void OnGUI(){
如果(!Network.isClient&&!Network.isServer){
if(GUI.Button(新的Rect(10、10、150、100),“启动服务器”)){
Log(“启动服务器”);
startServer();
}
if(GUI.Button(新的Rect(10200150100),“刷新主机”)){
Debug.Log(“刷新”);
刷新主机列表();
}
if(主机列表!=null){
for(int i=0;i0){
刷新=错误;
Log(MasterServer.PollHostList().Length);
hostList=MasterServer.PollHostList();
}
}
}
}
我在“项目设置”>“播放器后台播放”中进行了设置,并将网络视图附加到播放器。网络连接(主机列表[i]);有问题吗 好吧,我认为有一个原因,当客户端开始连接到服务器但没有完成时,它会继续尝试连接每个帧,您可以让它只连接一次。 也许您可以将其更改为: void OnGUI(){
if(!Network.isClient&&!Network.isServer){
if(GUI.Button(新的Rect(10、10、150、100),“启动服务器”)){
Log(“启动服务器”);
startServer();
}
if(GUI.Button(新的Rect(10200150100),“刷新主机”)){
Debug.Log(“刷新”);
刷新主机列表();
if(主机列表!=null){
for(int i=0;i
if (!Network.isClient && !Network.isServer) {
if (GUI.Button (new Rect (10, 10, 150, 100), "Start Server")) {
Debug.Log ("Starting Server");
startServer ();
}
if (GUI.Button (new Rect (10, 200, 150, 100), "Refresh Hosts")) {
Debug.Log ("Refreshing");
refreshHostList ();
if (hostList != null) {
for (int i = 0; i < hostList.Length; i++) {
GUI.Button (new Rect (400, 100 + (110 * i), 300, 100), hostList [i].gameName);
Network.Connect (hostList [i]);
}
}
}
}