Appleの審査に出すアプリがIPv6のみを用いた通信の対応必須になるということで、Unityで正式に対応すると発表されました。
今のところ対応しているのは
で、主要なのは大体対応されてるようです。
これからリリースするゲームで、マルチプレイヤーやサーバ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 ()); } }
アセットストアから落としたコードで使っている場合
修正を待つか、自分で修正しちゃいましょう
世はインターネッツ時代。
いずれはネットワークで対戦ゲー作りたいなあ。