2021-01-01から1年間の記事一覧
Unity Test Runnerで複数の入力値を取り扱う方法をまとめました。 複数の入力値を取り扱う? Values 複数の定数値を指定 Valuesを複数指定 Enumの全要素についてテスト boolについてテスト ValueSource フィールド・プロパティ・メソッドを指定できる 他のク…
Unity非対応の拡張子のファイルをアセットとして取り扱えるScripted Importerの使い方をまとめました。 Scripted Importerとは 簡単なサンプル(公式サンプル) サブアセットを差し替えるためのリマップ機能 他のアセットが変更されたら自身をリインポートす…
マルチスレッドでも安全に使えるCollectionクラスであるBlockingCollectionについてまとめます。
UnityのIMGUIのGUI.DrawTexture()で色々描いてみます。 はじめに 矩形を描画 角丸の矩形を描画 中抜きの矩形を描画 中抜きの角丸矩形を描画 ボーダー付きの矩形を描画 ボーダー付きの角丸矩形を描画 ボーダーの太さを辺によって変える 丸みを角によって変え…
AddressableアセットシステムのDiagnosticCallbackで参照カウントやAsyncOperationのイベントを取得する方法です。 やりたいこと 準備 参照カウントを取得する 取得できるイベントの種類 関連
UnityのProfilerで処理落ちの原因がメインスレッドなのかレンダースレッドなのかGPUなのか切り分ける手順についてまとめます。 パフォーマンスチューニングの一番最初にやるべきこと メインスレッド vs レンダースレッド・GPU レンダースレッド vs GPU 関連 …
xLuaの基本的な使い方についてまとめました。 xLua? インストール xLuaスクリプトを実行する スクリプトの読み込み方法いろいろ 文字列を読み込む Resourcesフォルダからファイルを読み込む ファイルの読み込み方法をカスタムする 推奨される実行方法 C#から…
UnityでLerpを用いてスムージングする際の問題点とMathf.SmoothDampによる解決策についてまとめました。 Lerpでスムージング Lerpによるスムージングの問題点 SmoothDampを使う パラメータを変える Lerpとの比較 SmoothDamp系メソッド SmoothDampって何者な…
Unityでマルチスレッド処理する方法が多すぎて混乱したのでざっくりまとめました。 C#におけるマルチスレッドの基本:Task 簡単な同期的並列処理ならParallelで Linqの処理をマルチスレッドで行うAsParallel UniTaskでもマルチスレッド処理できる UniRxでも…
Unityでglobパターンを使ってアセットを検索する方法についてまとめました。 globパターンでアセット検索ができるように globパターンの書き方 参考
Unityプロジェクト内の色を一元管理&一括変更する「uPalette」を公開しました。 github.com 概要 特徴 セットアップ バージョン要件 インストール ライセンス 使い方 色を作成する 色を反映する 色を適用しているGameObjectをハイライトする 独自のコンポー…
C#でマルチスレッドとIEnumerableを組み合わせる際の注意点についてまとめました。 はじめに IEnuemrableをサブスレッドから返すことを考える サブスレッドで行う処理にIEnumerableを渡すことを考える
UnityでSwatchライブラリを使って色のプリセットを保存したり共有したりする方法です。 知ってる人には基礎的なことですが、意外と情報少ない&気づきづらい機能なのでまとめておきます。 色を登録する・呼び出す 色に名前を付ける 色のセット(ライブラリ)…
UnityでPerformanceBenchmarkReporterを使ってPerformance Testing Extensionによるパフォーマンス測定結果を可視化する方法をまとめました。 はじめに ダウンロード 実行する 結果を見る 関連 参考
UnityのTest Runnerでパフォーマンステストを行うPerformance Testing Extensionの使い方についてまとめました。 はじめに セットアップ メソッドのパフォーマンスを計測する 計測結果を見る プロファイラのマーカーを指定して特定の処理のパフォーマンスを…
UniTaskのキャンセル処理についてまとめました。 非同期メソッドのキャンセル方法 Taskの場合 UniTaskの場合 UnityのAsyncOperation系 GameObjectのライフサイクルに紐づいたCancellationToken キャンセルのハンドリング方法 基本的にはtry-catch SuppressCa…
UnityのTypeCacheを使って指定したアトリビュートが付いている型を高速に取得する方法をまとめました。 TypeCache? 各APIとUnityバージョン ランタイムの可能性 参考
UnityのアセットであるNatCorderで動画をオフラインレコーディングする方法についてまとめました。 NatCorder? 映像だけオフラインレコーディングする 音声だけオフラインレコーディングする 動画と音声をオフラインレコーディングする AudioClipのデータを…
Unityエディタ上でスマホ実機がシミュレーションできるDevice Simulatorの使い方をまとめました。 Device Simulator? インストール 基本操作 カスタムアセンブリに設定を反映する カスタムデバイスを追加する 参考
UniTaskの例外処理についてまとめました。 非同期タスクを待機する場合 非同期タスクを待機しないと未処理例外として処理される 未処理例外のログ出力タイプを変える 未処理例外のハンドリング処理を書き換える 関連
UnityでTaskの未処理例外をUnobservedTaskExceptionで処理する方法をまとめました。
UnityのAddressableアセットシステムで同期ロードが公式にサポートされたので、その使い方とResources.Loadを置き換える方法についてまとめました。 Addressablesと同期ロード 今までは非同期なロード方法しかなかった 同期ロードが公式サポートされた 同期…
Unityでビルドの前後に処理を挟み込む方法についてまとめました。 ビルド前後の処理を行う ビルドボタンを押したときの処理を行う 参考
UniTaskをEdit Modeで使うときに気を付けることについてまとめました。 UniTask.DelayにはDelayType.Realtimeを 追記: 最新バージョンは自動的にRealtimeに Taskでもいい UniTask.DelayFrameは使わない PlayerLoopTimingはEditorApplication.updateになる 参…
UnityのuGUIをTimelineで制御できる「Unity UI Playables」を公開しました。 github.com 概要 Unity UI(uGUI)をタイムラインで制御可能 イージング、アニメーションカーブに対応 ブレンド可能 使い方 インストール トラックとクリップを作成 制御できるパラ…
UnityのScriptable Build Pipelineであるアセットと同じアセットバンドルに含まれるアセット一覧を取得する方法をまとめました。 はじめに 実装する 実行する 関連
UnityのAudioClipのデータを直接編集してサウンドデータの構造を学んでみます。 はじめに:サンプリングと量子化 ボリュームをコントロールする Decompress On Load にする必要アリ 片方のチャンネルだけいじる 特定の秒数だけいじる 参考
UnityのScriptable Build Pipelineによるビルドフロー構築方法について簡単にまとめました。 Scriptable Build Pipelineとは? インストール IBuildTaskを理解する IContextObjectを理解する 実際にIBuildTaskが使用されている部分を見る 実際にIContextObje…
UnityのアセットであるNatCorderで動画ファイルを作成する方法についてまとめました。 NatCorder? ゲームカメラを録画する Screen Space - OverlayにしているUIは描画できないので注意 音声付きで録画する iOS、Android実機でカメラロールに保存する Android…
C#で非同期メソッド内でのファイル入出力における排他制御についてまとめました。 同時読み込み・書き込みを許可するFileShare 並列読み込み・書き込みを管理する必要性 セマフォで排他制御