

Unityが固有に持つネットワーキングシステムを利用して、他のクライアントから自分が用意したサーバーへと接続できません。  
現状としては、Unityエディタでプレイしてもエラーは出ることはなく、ローカルでの接続ならば、UnityエディタとWindows用にビルドしたアプリではしっかりとデータが同期します。しかし、AndroidのアプリやWindowsのアプリからIPアドレスによるネットワーク接続を試みると、私のサーバーへと接続できません。  
おそらく、IPアドレスを上手く入手出来ていないことが問題として挙げられますが、IPアドレスは複数のIPアドレス確認用のサイトから確認した自分のIPアドレスを使用しているので間違えはないはずです。  
何か他にUnityのネットワーク接続が上手くいかない問題があるのでしょうか？

以下はIPアドレスを入手する際に使用しているスクリプトです。

開発環境  
・OS windows10  
・Unity 5.6.1f  
・『UnityによるVRアプリケーション開発』

[code]

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.Networking;
    using UnityEngine.VR;
    
    public class NetworkStart : NetworkBehaviour {
        public GameObject DiveCamera;
        public string hostIP="xxx.xx.xx.xxx";
    
        void Awake(){
            VRSettings.enabled = false; 
    
            #if(UNITY_ANDROID||UNITY_IPHONE)
            DiveCamera.SetActive(true);
            NetworkManager net=GetComponent<NetworkManager>();
            net.networkAddress=hostIP;
            net.StartClient();
            #else
            DiveCamera.SetActive(false);
            #endif
        }
    }
    
[/code]


CC BY-SA 3.0
2017-06-21T16:54:54.107
35784
2022-02-17T04:03:05.283
2017-06-21T17:30:47.390
3068
23872
question
unity3d
Unityのネットワーク接続が上手くいかない


コメントの続きになりますが、回答になりますのでこちらへ書きます。

私が同じPCでの動作かどうかを質問しましたのは、そのPCが他のPCや端末と通信できない状態なのではないかと疑ったからです。

通信はクライアントからサーバーへのアクセスが最初となると想像していますが、この時サーバー側のPCが外部からの通信を遮断していないかどうか確認すると良いと思います。たとえばそのPCのファイアーウォールを無効にすると通信できるようになる可能性があります。

もしファイアーウォールを無効にすると通信ができるようになるのであれば、サーバー側のファイアーウォールの設定でアプリが使用するポートを開けるなどの対応が必要になると思います。


CC BY-SA 3.0
2017-07-14T17:00:39.183
36370
2017-07-14T17:06:46.113
2017-07-14T17:06:46.113
3783
3783
35784
answer