TAKOYAKING’s blog 一覧

TAKOYAKING’s blog

たこ焼き系

アプリ島 可愛いゲーム情報で「スチームパペット - タワーディフェンス」をレビューしてもらえました。

最近個人ゲーム開発で「スチームパペット」というタワーディフェンスゲームをリリースしました!

アプリ島 可愛いゲーム情報のしるるさんにレビューを書いていただけました!
apps-island.com


可愛いゲームしか取り扱っていないかと思ってましたが、全範囲OKのようですので個人開発者さんは新作ゲームを作ったら、依頼してみてはどうでしょうか?

どんな感じでレビューしてもらえるか?

実際にダウンロードして遊んでもらえて、注目の点についてわかりやすく丁寧に説明してもらえます。
説明文とそれに対する会話があり、読みやすい内容になっています。

そして最後に良かったところ・悪かったところをまとめてもらえます。
ユーザーだけでなく、開発者自身も役に立つのではないでしょうか!

まとめ

作ったらレビューを送ることになるかと思いますが、どこに出せば良いかわからない方は依頼してみてはどうでしょうか?
レビュー依頼の方法は以下からご覧ください。
apps-island.com

Unity: iOSエラー「Symbol not found: _OBJC_CLASS_$_GADAdLoader」

現象

Symbol not found: _OBJC_CLASS_$_GADAdLoader

UnityでiOS用にビルドしてiOSエミュレータでアプリが起動すると上記のエラーが出てアプリが起動せずクラッシュします。

環境

  • Unity 2020.2.2f
  • Google Mobile Ads Unity Plugin v5.4.0
  • Firebase各種 7.02

原因

GoogleMobileAds.xcframeworkを追加してあげればクラッシュしなくなり、広告が表示されます。
(この対応があっているかは不明です)

観察

一旦追加した後にxcodeのプロジェクトを削除して、もう一回生成すると、GoogleMobileAds.xcframeworkは追加されていない状態になるのですが、なぜかうまく動くようになりました。

いいのだろうか??

Unity: 再生すると「CommandInvokationFailure: Unity Remote requirements check failed adb forward tcp:7201 tcp:7201」のエラーが出る

現象

CommandInvokationFailure: Unity Remote requirements check failed adb forward tcp:7201 tcp:7201

Unity Editorを再生しようとすると上記のエラーが出ます。

解決策

CommandInvokationFailure: Unity Remote requirements check failed - Unity Answers
ここに書いてありました。
ProjectSettings > Editor > Unity Remote
のDeviceの項目にAny Android Deviceとなっている時にPCに一台もAndroidがつながっていないとエラーが吐かれるようです。

対処としては

のどちらかを行えばOKです

Google cloud skdをインストールするとERROR: gcloud failed to load: dlopenが出る

Google cloud skdをインストールすると以下のエラーが出てインストールはできるけどgcloudコマンドが正しく動きませんでした。

ERROR: gcloud failed to load: dlopen(PATH/.pyenv/versions/3.7.3/lib/python3.7/lib-dynload/_ssl.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /PATH/.pyenv/versions/3.7.3/lib/python3.7/lib-dynload/_ssl.cpython-37m-darwin.so

解決策

pyenv 環境で Google Cloud SDK をインストールする - Qiita

export CLOUDSDK_PYTHON=$(which python2)

をzshrc(or bash_profile)に記述すると動きました。

pyenvを使っているとこのエラーに出あうみたいです。

Unity: UniRxのReactivePropertyで値が同じでも通知したい

状況

ReactivePropertyは値が同じ時は購読側に通知をしません。
通常はこれで問題ないのですが、通知して欲しい時がありました。

neuecc on Twitter: "UniRxだと通知飛ばす側がSetValueAndForceNotifyで強制的に飛ばせるって作りになってますね(定義側での挙動指定はできない)… "

使用方法

SetValueAndForceNotify

を使用すれば良いみたいです。

model.Count.Value = 1 // 同じ値は通知されない
// ↓
model.Count.SetValueAndForceNotify(1) // 同じ値でも通知される

必要だった状況

購読しているメソッド内部でifで分岐しており、メソッド外部の値を参照していました。

public void BindCount(int count) {
    if (this.level == 1) {
        // ~~~
    } else {
       // ~~~
    }
}

このメソッドではthis.levelというメソッド外部の値を参照していたため、this.levelが変わると、valueが同じでも、メソッドが再度実行されないといけない作りになっていました。
そのため、SetValueAndForceNotifyが必要となりました。

ですが、this.levelという値を参照をすべきではなく、ReactivePropertyをthis.levelとcountの2つの値で合成すべきでした。そうすれば、SetValueAndForceNotifyを使用する必要がなく、バグが引き起こされることもなかったと思います。

(なぜthis.levelを参照した作りにしたかというと、面倒だったので横着しました・・・(戒め))

結論

SetValueAndForceNotifyを使うか、合成したReactivePropertyを使用する。

Unity: mainTemplate.gradle file is using the old aaptOptions noCompress property definition which does not include types defined by unityStreamingAssets constant.

現象

mainTemplate.gradle file is using the old aaptOptions noCompress property definition which does not include types defined by unityStreamingAssets constant.<<<
2020.2にUnityをアップデートしてAndroidビルドをすると上のようなエラーメッセージが出現した。

環境

  • unity 2020.2.1f
  • Firebase

対処法

UnityPlayer.displayChanged() method to add a Surface as an additional display - Unity Forum
aaptOptionsの中に↓を追加する

noCompress = ['.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ')

fastlane: 「An attribute value is not acceptable for the current resource state. - The attribute 'releaseType' can not be modified」

現象

An attribute value is not acceptable for the current resource state. - The attribute 'releaseType' can not be modified

原因

iTunes Connectの「予約注文を利用可能にする」にチェックが入っているため

解決方法

もしかしたら設定があるかもしれませんが、とりあえず、iTunes Connectの「予約注文を利用可能にする」のチェックをオフにするとfastlaneが正常に動作しました。