いんでぃーづ

ゲームいろいろ、いろいろ自由

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

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 ());
    }

}

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

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

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


“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。