おれ、Unity2Dでゲーム作るんだ。

Unity2Dをメインに、覚書などを記事にしていきます。

「Android App Bundle は署名されていません」エラーは「Development Build」が原因

Google Play Consoleにアプリをアップロード出来ない理由としては、 abbでアップロードが必須 そもそも新規アプリはapkではなくabbファイルでアップロードしないといけません。 Unityの場合は、「Build App Bundle」にチェックを入れます。 Development Buil…

Unity - InputSystemのコールバックが複数回呼ばれる件

InputSytem Input Sytemは、Input Managerに変わる新しい入力管理方法で、タッチもコントローラーも、キーボードもマウスも、同列に定義できる優れものです。 InputSystemの導入は色々調べてやってください。 forpro.unity3d.jp ちょっと判りにくい?コール…

【uGUI】負荷をかけない透明なuGUIボタン

負荷をかけない透明なuGUIボタン 画面のどこでもタップしたらシーン遷移するといった処理を行う場合に、 画面全体を覆うようなButtonを配置して、画像を透過にして使用することがあると思います。 実は透明でも処理コストはかかる ただ、透明だとしても処理…

Unity - uGUI ボタン画像よりも大きなタッチ反応領域をつくる(2020年版)

以前、ボタンの画像よりも大きくタッチ範囲領域を作ったのがこの方法。 大きい画像を透過にして仕込む unity2d.hateblo.jp まぁ、uGUIは画像がタッチ範囲なので、もうちょっと大きい画像を新たに作って透過にしちゃえ。 という、まぁ、ちょっとスマートでは…

Listのnull or 0 チェックの気に入っている書き方

ListがNullか?もしくは要素数が0ではないか? つまりデータがあるかどうかを確かめるとき、 if(DataList?.count > 0) { //データがある場合の処理 } こんな風に書いてシンプルさにホクホクしています。 小さい幸せでした。

Debug.Logなどで出力箇所を楽に表示させる(実行メソッド名を取得する)

プログラムが複雑になってくると、各メソッドがどのような順番で実行されているのか知りたくなることがあります。 まぁ、そんなときには単純に、各メソッドの先頭に、Debug.Log("Method A")なんてそれぞれ書いていきがちなのですが、 いろんな所に仕込む際に…

Unityは手動アクティベートしないほうがいい

結論から書いておきますと、Unityでライセンス認証する際は、 Unity Hubの手動でのライセンス認証は避ける (Unity Hubを使わず) Unityを直接起動して、 Unity上でライセンス認証をオンラインで行うのが吉。 です。 Unityのライセンスを持っていると2台まで利…

Unityがクラッシュする件の突貫対応?(Curl error 51: Cert verify failed: UNITYTLS_X509VERIFY_FLAG_EXPIRED)

5/9 8:08 証明書が更新され、正常に戻ったようです。 https://forum.unity.com/threads/curl-error-51-cert-verify-failed-unitytls_x509verify_flag_expired.786755/page-5#post-5822977 5/9 3:58 Unity側のサーバー証明書の期限切れが問題っぽく現在対応中…

オブジェクトの距離を判定するときはVector3.sqrMagnitudeがパフォーマンスに優しい

2オブジェクトのポジションから距離を取得してなんやかんやすることはよくあると思います。 すぐ、頭に浮かぶのがDistance。 Vector3.Distance(A,B) わかりやすいんですが、ただ、これは測定の際に平方根の計算が走る(らしい)ので処理をとられる。 じゃあ、…

浮動小数点を比較する

floatを演算子で比較しようとすると、まんまと引っかからないときがあります。 フェードアウトで真っ黒になったら実行などと書くと、あれ?ってなったりします。 そんなときは public static bool Approximately (float a, float b); この関数を使います。 …

浮動小数点を比較する

floatを演算子で比較しようとすると、まんまと引っかからないときがあります。 そんなときは public static bool Approximately (float a, float b); この関数を使います。 これでほぼ一致した場合にtrueを返してくれます。 docs.unity3d.com

Unityプロファイラに気になる部分の処理を表示する

コロナの影響で、Unity Learning Premium 見てたら、知らないことがあったので備忘。 learn.unity.com 処理が重いところをプロファイラで覗いても、範囲が広すぎてわからん!ってことがあったり わざわざ、気になる処理の開始と終了の時間取得して差を表示さ…

レイヤーっぽく前面のボタンが出ているときは、後ろのボタンは押せないようにする

オプション画面などを本編の画面にオーバーレイで出すような場合に、 ゲーム本編の方のボタンを押されたくないといった制御したい。 といった場合の話。 例えば、図のように両方押せるボタンがある場合、両方のボタンが押せてしまいます。 Imageでタップをガ…

AnimationCurveで値の変化を自由に設定

A地点からB地点に移動などする際に、びよーんとかぐいーんとか、なんとなく気持ちよく動くあれですが、 それをAnimationCurveを使ってやってみようと言う感じです。 とりあえず、s地点からe地点に、time時間使って移動する処理。 IEnumerator Move(GameObjec…

UnityのC#とJSONの命名規則のすりあわせ

キー名はスネーク? Web APIを使ってると、返ってきたJSONのキー名がスネークだったりします。 よくあります。 で、C#のクラスのプロパティにスネークかぁ、キャメルにしたいなぁって事があって、 サーバーが変えろ! いやクライアントが合わせろ! 先にやっ…

Unity - 出来ていたAndroidビルドが出来なくなったときに修正した場所(2箇所)

ついこの間まで出来ていたAndroidのビルドが出来なくなった!? で、原因が2つあったので AndroidStudioのバージョンアップをしてSDK toolsの構造が変わった AndroidStudioのバージョンアップ(2.3.3)を行ったところ、 SDKのパス正しく教えろってメッセージ…

Collider2Dだけで重なりを判定する(Collider2D.OverlapCollider)

画像が重なっているか確認したい事ってありますよね。でもって、その時のために、わざわざ重なってるかどうか知りたいだけなのにRigidbodyなんか使いたくない時ってありますよね。 調べても、2D collision detection without rigid body? - Unity Answersコ…

Unity - CameraのClipping Planesって

Clipping Planesって Unityのカメラの設定に、Clipping Planesってのは、 どのくらいの範囲を描画するかって設定 Near : どれくらい近さまでを描画するか Far : どれくらい遠くまで描画するか つまり、Farなんかの数値が多ければその分描画量が増えるので、 …

C# - 引数につける修飾子 ref

refって? refとはなんぞと思ったら、referenceのrefで、つまりは参照渡しでした。 メソッドの定義で、参照渡しで定義できるんですね。 サンプル //値渡し static void valuex2(int val) { val = val * 2; Debug.Log(">"+val); } //参照渡し static void valu…

Singleton(シングルトン)ってなによ?

Singleton(シングルトン)ってなによ?ってことをまとめてみました。 特にc#やUnityの機能では無く、プログラミングの手法というか設計のレシピです。 で、このシングルトンとはどのような設計かというと、 クラスのインスタンスが1個しかつくれない 別の言…

Unity - コルーチンってなに?

コルーチンとは? 通常は、関数が始まるとreturnされるまでを1セットとして処理される訳ですが、 コルーチンは、処理の途中で一旦中断して、次のフレームでその続きから再開できたりする事ができます。 たとえば、「フェードアウトさせたい!」と思って以下…

Unity - AssetBundleの基本(AssetBundleを使う)

AssetBundleの作成方法 こちらに書きました。 unity2d.hateblo.jp AseetBundleの使い方 ビルドしてできたデータをサーバに配置 ダウンロードして使用 これだけ。 AssetBundleを使う サーバに配置 どこぞのWEBサーバに設置する node.jsをローカルにインストー…

Unity - AssetBundleの基本(AssetBundleをつくる)

AssetBundleとは アプリとは別の外部データ。追加データなど、アプリの更新以外でデータを増やしたい場合などの仕組みに利用します。 画像やサウンドをAseetBundle化してパッキングしてサーバーに置く。そして、ダウンロードさせて使う。そんな使われ方を想…

【朗報】LINE BOT の Server IP Whitelist がOptionalになってた

久しぶりに、LINE BOTの設定を除いていると、、、 なんと、 LINE BOTのServer IP Whitelistが任意になっていました。 つまり、設定しなければ、どのホストからもアクセス出来ちゃう! つまり、諦めていた、 AWSのAPI Gateway+Lambdaのサーバーレスで、BOTの…

AssetBundleがiCloudのバックアップ対象になっているからってことでアプリがリジェクト

先日、Appleからリジェクトされた件。 理由としては、AssetBundleがiCloudのバックアップ対象になってるぜってことらしい。 知らんがな! と思ったんですが、調べてみると、 d.hatena.ne.jp あぁ、なんとなくUnityのせいっぽい。 って、対処方法をこねくり回…

AWS Lambda + DynamoDBで吐く"NetworkingError: write EPROTO"エラーについて

AWS Lambdaで楽しくサーバーレス環境を作っていたところ。。。 なにやらログにエラーが書き出されていた。 { "errorMsg": "NetworkingError: write EPROTO", "param": { "id": "XXXXXXXXXXXXXX", "store": "SHOP_AAAA", }} EPROTOていうのはプロトコルエラー…

LINE BOTに設定しているコールバックに飛んでこないのは多分SSLの水準のせい?

ここ数日、LINE BOTをイジイジしていたんですが、 architect.hatenadiary.jp 結局、引っかかったLINE BOTからのコールバックは解決してません。設定してから反映されるまでに時間がかかるって話もありましたが、AWSのAPI Gatewayと自己ドメインで相互書き換…

LINE BOT API Trial で引っかかったところ

いや、まだ絶賛苦戦中なんですが。。。 ひとまず、落ち着きました。 まぁ、LINEのBOTが話題に上がったので、試そうとしたんですが、 スキル不足でつまずいたところを書いておきます。 linecorp.com 調子こいてAWS API GatewayとLambdaでやろうとした これが…

AWS Lambdaで、DynamoDBをgetItemするときのパラメータの覚書

いやー、AWS API Gateway良いですね。 結構、APIサーバーを作成する作業が多かったのですが、 API Gatewatyならサーバーいらねー!ってことで、運用負担がスゲー減って最高。ミドルウェアのバージョンやらなにやらも気にしないでいいので、 もう、すべてこい…

Unity - uGUI ボタン画像よりも大きなタッチ反応領域をつくる

【更新】下記リンクであたらしくタッチ反応領域変更の情報を更新しています。Unityの進化などで、新しく2パターン、タッチ範囲を調整する方法を追記しました。 unity2d.hateblo.jp 画像をボタンにしたときに、画像が小さいと押しにくくなるので、 適当に押…