読者です 読者をやめる 読者になる 読者になる

いんでぃーづ

個人でゲーム開発してる上で吸収したモノたち紹介。UnityからGIMPまでなんでも。デザインとかゲーム論まで語っちゃうよ的なアレ。

MENU
{スポンサーリンク}

Appleの審査に関連したUnityのIPv6対応

Unity

Appleの審査に出すアプリがIPv6のみを用いた通信の対応必須になるということで、Unityで正式に対応すると発表されました。

blogs.unity3d.com

今のところ対応しているのは

で、主要なのは大体対応されてるようです。

これからリリースするゲームで、マルチプレイヤーやサーバIP指定でアクセスしてるアプリは要注意です。

注意すること

IPv4アドレスをコードに直接入れない

192.168.254.1

みたいなアドレスをコードに直接入れるのは当然避けるべきでしょう。

IPv6用の分岐を入れる

IPAdressクラスのAddressFamilyプロパティを参照している場合、IPv6用の処理が入っているかの確認が必要です。

また、IPAddress.Any と IPAddress.Loopback はIPv4用なので、IPv6Any と IPAddress.IPv6Loopbackを使うコードにする必要が あります。

IPAdressクラスはUnityEngineネームスペースのクラスでなくSystemにあるクラスですので注意

てきとうにコード書いてみました。

using System.Net;
using System.Net.Sockets;

public class IPAdressTest : MonoBehaviour {

    void Start () {

        IPAddress addr = IPAddress.Parse (Network.player.ipAddress);

        IPAddress any = IPAddress.None;
        switch (addr.AddressFamily) {
        case AddressFamily.InterNetwork:
            // IPv4用の処理
            any = IPAddress.Any;
            break;
        case AddressFamily.InterNetworkV6:
            // IPv6用の処理
            any = IPAddress.IPv6Any;
            break;
        }
        Debug.Log (any.ToString ());
    }

}

アセットストアから落としたコードで使っている場合

修正を待つか、自分で修正しちゃいましょう

世はインターネッツ時代。
いずれはネットワークで対戦ゲー作りたいなあ。

Amazon.co.jpアソシエイト