つい最近、uGUIをふんだんに使った(というか、キャラも何もかもuGUIで作った)ゲームをAndroid/iOSでリリースしました。
リリースする際に起こった問題を何点か記載してみます。
Androidでの問題
uGUI InputField
Line Typeを「Single Line」にすると、ソフトウェアキーボードの完了キーを押すと入力内容が消滅するようになる。
「Multi Line Submit」にすると正しく動くので、こちらを使いましょう。
uGUI Mask
端末依存かOS依存か明確には調査できていませんが、一部の端末でMaskが効かなくなりました。
これは対処法不明なので放置中。。
メモリ
uGUI関係ないですが、困った。
Androidは端末スペックに幅があるので、ちょっと古い端末だとすぐメモリが足りなくなって落ちます。
自身の検証不足が原因ではあるのですが、今さらそう簡単には直せなかったり・・・。
iOSでの問題
RemoteNotificationの問題
iOSではuGUI周り特に問題が起きなかったので、別のトコロを。
Unityから吐いたiOSプロジェクトをそのままビルドして送ると、iTunes Storeから「Missing Push Notification Entitlement」と記載されたメールが送られてきます。
RemoteNotification用のコードが入ってるのにRemoteNotificationの設定がONになっとらんよー ってことらしいです。
UnityのiOSプロジェクトはデフォルトでRemoteNotificationのコードが含まれてしまっているようなので、UnityAppController.mm の下記3つのメソッドを消しておけばOKです。
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
Linqは意外と大丈夫でした
今回、C#のLinqはガッツリ使いました。
LinqはiOSでのみエラーになる部分が沢山あるため敬遠しがちですが、どういった使い方をすると落ちるかをまとめてくださっている方が居るので、それに沿えば全然問題ナシでした。
ただ、開発中のメイン検証マシンはAndroidで、iOSでの検証は最後にやる、といったような場合は最初から避けても良いかもしれません。
まとめ
現時点では、uGUIはAndroidでのMaskの挙動が致命的。
他に問題は見当たらなかったので、実に惜しい・・・。
どなたか回避策があればご教授くださいませm(_ _)m