Unityプログラマーに優しい画像データの作り方

自分がアーティストさんにデータ作ってもらうときに、こうだとありがたいってことをメモ アイコンとベースは分ける 一般的にこういう画像データより こういう風に分けてもらったほうが、それぞれを使い回せるので便利だしメモリ節約になる 余白は無い方が調…

MacのUnityでPlatformをPCにしているときにはGPUInstancingが正常に動くが、AndroidやiOSに設定すると絵が正しく表示されない

この件、めちゃくちゃハマったのですが、結論から言うとShader側で設けているBufferに対してCPU側から送るバッファのサイズがおかしかったのが原因でした。なんで、Platform設定によってうまくいったりいかなかったりするんだろう???しかもWindowsでEdito…

UniTaskのWhenAnyで終了しなかった側のタスクはどうなる?

質問 UniTaskのWhenAnyで終了しなかった側のタスクはどうなるのでしょうか? 回答 タスクは走り続けます。意図的にそうするなら良いのですが気が付かずに放置しちゃうことが多々あります。特にUniRxのIObservableをToUniTaskするときとか。ちゃんとキャンセ…

FacebookSDKの組み込みに苦労した

FacebookSDKの組み込みに苦労した。Android版。 1. You don't have the Android SDK setup!というエラー なぜかSDKのパスを認識していないらしい。 Preferences>External Tools>Android SDK へ 設定済みのパスをコピーしてチェックを外す コピーしたパスを…

C#では型でもswitch文で分岐できるらしい

最近、型でもswitch文で分岐できるということを知った。 例えば以下のような感じ。 using UnityEngine; public interface TestInterface { } public class TypeA : TestInterface { } public class TypeB : TestInterface { } public class TypeC : TestInte…

リソース読み込み終わったらチョメチョメしたいをUniTaskとUniRxで

Unity開発者ギルドで、何か読むのにオススメのコードを募集したら、かめふぃさんのコードをご紹介いただきました。 github.com 色々と学ぶところが多かったのですが、今日はそのうちの1つを忘れないようにメモ。リソース読み込み終わったらチョメチョメした…

プロパティをSerializeFieldにしたい

Unityをやっているとこんなふうに書けたら良いのに...って思うことないですか? [SerializeField] public string Name { get; private set; } 要は、プロパティをSerializeFieldにしてInspector上に表示したり値を保存したりしたいのです。しかし、これはう…

今までSandboxで課金テスト出来ていたのが、突如レシートの検証が失敗するようになった。

今までSandboxで課金テスト出来ていたのが、iOSのみ突如レシートの検証が失敗するようになった。購入処理はうまくいくのにレシート検証で失敗するようで以下のようなエラーが出た。 Validation failed:/Client/ValidateIOSReceipt:iTunes Sandbox validation…

How to upload to Unityroom

Preparation WebGL Build Select WebGL in Build Settings.Select Gzip as a compression format in Player Settings. Twitter account You need a Twitter account to log in to Unityroom. Procedure 1. Log in to Unityroom Access the Unityroom and pre…

気がつくとM-1 Max Macが異様に重くなる現象に悩まされた

M-1 MaxのMacを買ったのだけれど、1日使っていると1日の終わり頃にめちゃくちゃ重くなって困っていた。IMEの変換でしびれを切らすほど重かった。なんでだろうと調べてみると、sshのプロセスが多数存在していた。どうもgitがsshを使ってそれが残り続けている…

App Store Small Business Programがちゃんと適用されているか確認する

何月から適用されてるんだ?っと思ったもののいつの間にかAppleから売上のInvoiceが届かなくなってたので、Invoiceから確認することができず色々模索した。なんとかApp Store Connectから適用されていることが確認できた。 「App Store Connect」から「Payme…

Library not loaded: @rpath/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics というエラーで苦しんだ

Macを乗り換えたせいか、広告プラグインを更新したせいかよくわかっていないのだけどプロジェクトをXCodeでビルドして実行すると以下のようなエラーが出るようになってしまった。 2021-11-24 21:33:35.760999+0900 Numpurr[13175:2902555] AppLovinQualitySe…

ほぼフルカスタムのMacbook Pro 2019 16-inch VS ほぼフルカスタム Macbook Pro 2021 16-inch

MBP16inch 2021/M1 Max/Memory 64GB が届いたので、現在使っている MBP16inch 2019/Intel Core I9 2.4GHz/Memory 32GB とビルド時間を比較してみた。ビルドしたのは、「にゃんばーカードWars」のプロジェクトファイル。Unityは2020.3.8f1(Rosetta)。 ※Apple …

ImageのtexOffsetがうまく動かない

maskしていると駄目らしい。answers.unity.commaterialの代わりにmaterialForRenderingのmainTextureOffsetを利用することでうまくいった。Awake時にDOTWeenのDOOffsetを使おうとしたが、それ機能しなかった。 materialForRenderingはどこかのタイミングで変…

自分のアプリで特定の言語でのみ起動できないバグがあった

自分のアプリで特定の言語でのみ起動できないバグがあった。具体的にはタイ語の人だった。最初自分の手元では再現せず全然原因が分からなかったが、自分のスマホの言語設定をタイ語にして試してみたら再現した。 2021/09/08 10:51:10.871 13160 13341 Error …

Shader error in 'Hidden/PostProcessing/FinalPass': Input signature parameter (1-based Entry 3) type must be a scalar uint. at line 44 (on gles)

Android版をビルドすると以下のようなエラーが出て困ってました。 Shader error in 'Hidden/PostProcessing/FinalPass': Input signature parameter (1-based Entry 3) type must be a scalar uint. at line 44 (on gles) Player Settings -> Other Settings…

Could not collect Google Advertising ID というエラーが出て、広告がちゃんと出ない

以下のようなエラーが出た。 [DataCollector] Could not collect Google Advertising ID - this will negatively impact your eCPMs! Please integrate the Google Play Services SDK into your application. More info can be found online at http://devel…

UniRxで一定時間マウスオーバーで情報表示

カードゲームを作ったんですが、一定時間マウスオーバーでカードの情報を表示したかったのでUniRxでやってみました。結構スッキリ書けて満足。そのゲームはこちら↓ unityroom.com void Start() { const float mouse_over_time = 2.0f; var eventTrigger = ga…

WebGL ビルドで謎の OnJointBreak2D 関連のエラーが出る

Unityroomに投稿しようと思ったら、OnJointBreak2Dが云々という謎エラーが出て困ってました。Unityのバージョンを落としてみたり、.Netを2.0から4.0に切り替えてみたり、色々と試してみたものの対処できずにいたところ、Twitterで以下のつぶやきをみつけまし…

WebGL ビルドで謎の OnJointBreak2D 関連のエラーが出る

Unityroomに投稿しようと思ったら、OnJointBreak2Dが云々という謎エラーが出て困ってました。Unityのバージョンを落としてみたり、.Netを2.0から4.0に切り替えてみたり、色々と試してみたものの対処できずにいたところ、Twitterで以下のつぶやきをみつけまし…

ほぼフルカスタムのMacbook Pro 2019 16-inch VS Macbook Pro 2020 M-1 13-inch

開発にMacbook Pro 16-inchを使っているんですが、Unityでのゲーム実行やコンパイル、ビルドに時間がかかって、ファンがガンガン回ってうるさいので、話題のM1 Macを買ってみました。乗り換えてみたものの、そんなに早くなった気がしない。むしろ遅くなった…

古いプロジェクトを最新のUnityにバージョンアップしたらドラッグできなくなった

気がついたら、ドラッグ対象のオブジェクトにCanvasコンポーネントがついてたからだった。Canvasコンポーネントを外したら解決。

Keystore file '.../Temp/gradleOut/launcher/○○○.keystore' not found for signing config 'release'. See the Console for details. というエラーが出る。

古いプロジェクトを最新のUnityにバージョンアップして、Androidビルドしたところ、 Keystore file '.../Temp/gradleOut/launcher/○○○.keystore' not found for signing config 'release'. See the Console for details. というエラーが出て困っていたのだけ…

OdinにDictionaryのSerializeを任せてたらエラーが出た

実機でうまく動かないアプリがあってログを確認すると以下のようなエラーが出ていた。Creating a serialization formatter for the type 'System.Collections.Generic.Dictionary' failed due to missing AOT support. Please use Odin's AOT generation fea…

Unity Cloud BuildでできあがったiOS版ビルドがインストールできない

Unity Cloud Buildで出来上がったiOSバイナリをインストールしようとしたのですが、「Detect Device」というボタンを押すと、また同じ「Detect Device」のボタンのあるページに戻ってきて一向にインストールできないという現象に遭遇。たまに 404 Page not f…

MacOS CatalinaでiTunesがなくなったけどどうやってiPhoneのUDIDを確認するの?

Finderからわかるらしいです。iPhoneをつなぐとFinder上にiPhoneを選ぶところが出ますね。そこをクリックすると下記のような画面になります。そうした上で、iPhone11Pro Max 247.56GB って書いているあたりをクリックするとUDIDなどのIDが出てきます。参考: …

MacOS CatalinaでiTunesがなくなったけどどうやってiPhoneのUDIDを確認するの?

Finderからわかるらしいです。iPhoneをつなぐとFinder上にiPhoneを選ぶところが出ますね。そこをクリックすると下記のような画面になります。そうした上で、iPhone11Pro Max 247.56GB って書いているあたりをクリックするとUDIDなどのIDが出てきます。

ERROR ITMS-90503 と出てアプリをApp Storeにアップロードできない

フルメッセージとしては以下のようなのが出た。 ERROR ITMS-90503: "Invalid Bundle. You've included the "arm64" value for the UIRequiredDeviceCapabilities key in your Xcode project, indicating that your app may only support 64-bit. Your binary…

Asperiteでつくったaseファイル内にあるアニメーションをレガシーにする。

AseFileImporter.csのGenerateAnimationsの中でテキトーにanimationClip.legacy = true; してしまえばいけました。

子供のTrasnformをsortする拡張

Trasnformをsortしたいことがしばしばあったので書いてみました。もっと軽量にできそうだけどざっくり。 public static class TransformExtensions { private class Comparer : IComparer<Transform> { public Func<Transform, Transform, int> func; public Comparer(Func<Transform, Transform, int> func) { this.func = fun</transform,></transform,></transform>…