Unity3d に外部データをロードするときに、欠落しているネットワーク接続を処理しようとしています。
私のアプリケーションはサーバーから大量のデータを引き出しますが、ネット接続がなければアプリケーションは失敗し、ユーザーに問題を伝えます。
すべてのデータ取得に WWW クラスを使用していますが、ネットワーク接続の切断も WWW を使用して処理したいと考えています。
私の主な問題は、WWW クラスのエラー プロパティが次を返すことです。
「crossdomain.xml ポリシー ファイルが見つからなかったため拒否されました」
コンピューターからネットワーク ケーブルを抜いたとき。
ネットワーク接続の欠落と crossdomain.xml ファイルの欠落を区別する方法がわかりません。これらはまったく別の問題であるためです。
すべての「クロスドメイン ポリシー エラー」をネットワーク損失として「解釈」したくありません。
データをロードするための私のコードは次のようになります。
public class SendAndLoadData : MonoBehaviour
{
public delegate void SuccessEventHandler(string data);
public delegate void ErrorEventHandler(string msg);
public void SendData(string url, SuccessEventHandler onSuccess, ErrorEventHandler onError) {
StartCoroutine(LoadRemoteData(url,onSuccess,onError));
}
IEnumerator LoadRemoteData(string path, SuccessEventHandler onSuccess, ErrorEventHandler onError)
{
var _www = new WWW(path);
yield return _www;
if (_www.error != null)
{
if ( onError != null ) {
onError(_www.error);
}
}
else
{
var data = _www.text;
if ( onSuccess != null ) {
onSuccess(data);
}
}
}
}
任意の提案をいただければ幸いです。