2021-01-01から1年間の記事一覧

【Unity】Unity Test Runner(Test Framework)で複数の入力値を取り扱う方法まとめ

Unity Test Runnerで複数の入力値を取り扱う方法をまとめました。 複数の入力値を取り扱う? Values 複数の定数値を指定 Valuesを複数指定 Enumの全要素についてテスト boolについてテスト ValueSource フィールド・プロパティ・メソッドを指定できる 他のク…

【Unity】Unity非対応の拡張子のファイルをアセットとして取り扱えるScripted Importerの使い方

Unity非対応の拡張子のファイルをアセットとして取り扱えるScripted Importerの使い方をまとめました。 Scripted Importerとは 簡単なサンプル(公式サンプル) サブアセットを差し替えるためのリマップ機能 他のアセットが変更されたら自身をリインポートす…

【C#】マルチスレッドで安全に使えるCollectionクラス - BlockingCollection

C#

マルチスレッドでも安全に使えるCollectionクラスであるBlockingCollectionについてまとめます。

【Unity】GUI.DrawTexture()でいろんな図形を描画する

UnityのIMGUIのGUI.DrawTexture()で色々描いてみます。 はじめに 矩形を描画 角丸の矩形を描画 中抜きの矩形を描画 中抜きの角丸矩形を描画 ボーダー付きの矩形を描画 ボーダー付きの角丸矩形を描画 ボーダーの太さを辺によって変える 丸みを角によって変え…

【Unity】【Addressable】DiagnosticCallbackで参照カウントなどを取得する

AddressableアセットシステムのDiagnosticCallbackで参照カウントやAsyncOperationのイベントを取得する方法です。 やりたいこと 準備 参照カウントを取得する 取得できるイベントの種類 関連

【Unity】Profilerで処理落ちの原因がメインスレッドなのかレンダースレッドなのかGPUなのか切り分ける手順

UnityのProfilerで処理落ちの原因がメインスレッドなのかレンダースレッドなのかGPUなのか切り分ける手順についてまとめます。 パフォーマンスチューニングの一番最初にやるべきこと メインスレッド vs レンダースレッド・GPU レンダースレッド vs GPU 関連 …

【Unity】xLuaの基本的な使い方まとめ

xLuaの基本的な使い方についてまとめました。 xLua? インストール xLuaスクリプトを実行する スクリプトの読み込み方法いろいろ 文字列を読み込む Resourcesフォルダからファイルを読み込む ファイルの読み込み方法をカスタムする 推奨される実行方法 C#から…

【Unity】Lerpを用いたスムージングの問題点とMathf.SmoothDampによる解決策

UnityでLerpを用いてスムージングする際の問題点とMathf.SmoothDampによる解決策についてまとめました。 Lerpでスムージング Lerpによるスムージングの問題点 SmoothDampを使う パラメータを変える Lerpとの比較 SmoothDamp系メソッド SmoothDampって何者な…

【Unity】Unityでマルチスレッド処理する方法が多すぎてわけわかんないのでまとめた

Unityでマルチスレッド処理する方法が多すぎて混乱したのでざっくりまとめました。 C#におけるマルチスレッドの基本:Task 簡単な同期的並列処理ならParallelで Linqの処理をマルチスレッドで行うAsParallel UniTaskでもマルチスレッド処理できる UniRxでも…

【Unity】globパターンを使ってアセットを検索する(Unity2020からの新機能)

Unityでglobパターンを使ってアセットを検索する方法についてまとめました。 globパターンでアセット検索ができるように globパターンの書き方 参考

【Unity】プロジェクト内の色を一元管理&一括変更する「uPalette」を公開しました

Unityプロジェクト内の色を一元管理&一括変更する「uPalette」を公開しました。 github.com 概要 特徴 セットアップ バージョン要件 インストール ライセンス 使い方 色を作成する 色を反映する 色を適用しているGameObjectをハイライトする 独自のコンポー…

【C#】マルチスレッドとIEnumerableを組み合わせる際の注意点

C#

C#でマルチスレッドとIEnumerableを組み合わせる際の注意点についてまとめました。 はじめに IEnuemrableをサブスレッドから返すことを考える サブスレッドで行う処理にIEnumerableを渡すことを考える

【Unity】色のプリセットを保存・共有するSwatchライブラリの使い方まとめ

UnityでSwatchライブラリを使って色のプリセットを保存したり共有したりする方法です。 知ってる人には基礎的なことですが、意外と情報少ない&気づきづらい機能なのでまとめておきます。 色を登録する・呼び出す 色に名前を付ける 色のセット(ライブラリ)…

【Unity】PerformanceBenchmarkReporterを使ってPerformance Testing Extensionによるパフォーマンス測定結果を可視化する

UnityでPerformanceBenchmarkReporterを使ってPerformance Testing Extensionによるパフォーマンス測定結果を可視化する方法をまとめました。 はじめに ダウンロード 実行する 結果を見る 関連 参考

【Unity】Test Runnerでパフォーマンステストを行うPerformance Testing Extensionの使い方まとめ

UnityのTest Runnerでパフォーマンステストを行うPerformance Testing Extensionの使い方についてまとめました。 はじめに セットアップ メソッドのパフォーマンスを計測する 計測結果を見る プロファイラのマーカーを指定して特定の処理のパフォーマンスを…

【Unity】UniTaskのキャンセル処理まとめ・Taskとの比較

UniTaskのキャンセル処理についてまとめました。 非同期メソッドのキャンセル方法 Taskの場合 UniTaskの場合 UnityのAsyncOperation系 GameObjectのライフサイクルに紐づいたCancellationToken キャンセルのハンドリング方法 基本的にはtry-catch SuppressCa…

【Unity】【エディタ】TypeCacheを使って指定したアトリビュートが付いている型を高速に取得する

UnityのTypeCacheを使って指定したアトリビュートが付いている型を高速に取得する方法をまとめました。 TypeCache? 各APIとUnityバージョン ランタイムの可能性 参考

【Unity】NatCorderで動画をオフラインレコーディングする

UnityのアセットであるNatCorderで動画をオフラインレコーディングする方法についてまとめました。 NatCorder? 映像だけオフラインレコーディングする 音声だけオフラインレコーディングする 動画と音声をオフラインレコーディングする AudioClipのデータを…

【Unity】Unityエディタ上でスマホ実機がシミュレーションできるDevice Simulatorの使い方まとめ

Unityエディタ上でスマホ実機がシミュレーションできるDevice Simulatorの使い方をまとめました。 Device Simulator? インストール 基本操作 カスタムアセンブリに設定を反映する カスタムデバイスを追加する 参考

【Unity】UniTaskの例外処理まとめ

UniTaskの例外処理についてまとめました。 非同期タスクを待機する場合 非同期タスクを待機しないと未処理例外として処理される 未処理例外のログ出力タイプを変える 未処理例外のハンドリング処理を書き換える 関連

【Unity】【C#】Taskの未処理例外をUnobservedTaskExceptionで処理してログ出力する

UnityでTaskの未処理例外をUnobservedTaskExceptionで処理する方法をまとめました。

【Unity】Addressableアセットシステムで同期ロードが公式サポート、Resources.Loadを置き換え可能に

UnityのAddressableアセットシステムで同期ロードが公式にサポートされたので、その使い方とResources.Loadを置き換える方法についてまとめました。 Addressablesと同期ロード 今までは非同期なロード方法しかなかった 同期ロードが公式サポートされた 同期…

【Unity】ビルドの前後に処理を挟み込む方法

Unityでビルドの前後に処理を挟み込む方法についてまとめました。 ビルド前後の処理を行う ビルドボタンを押したときの処理を行う 参考

【Unity】【UniTask】 UniTaskをエディタ(Edit Mode)で使うときに気を付けること

UniTaskをEdit Modeで使うときに気を付けることについてまとめました。 UniTask.DelayにはDelayType.Realtimeを 追記: 最新バージョンは自動的にRealtimeに Taskでもいい UniTask.DelayFrameは使わない PlayerLoopTimingはEditorApplication.updateになる 参…

【Unity】uGUIをTimelineで制御できる「Unity UI Playables」を公開しました

UnityのuGUIをTimelineで制御できる「Unity UI Playables」を公開しました。 github.com 概要 Unity UI(uGUI)をタイムラインで制御可能 イージング、アニメーションカーブに対応 ブレンド可能 使い方 インストール トラックとクリップを作成 制御できるパラ…

【Unity】Scriptable Build Pipelineで同じアセットバンドルに含まれるアセット一覧を取得する

UnityのScriptable Build Pipelineであるアセットと同じアセットバンドルに含まれるアセット一覧を取得する方法をまとめました。 はじめに 実装する 実行する 関連

【Unity】AudioClipのデータを直接編集してサウンドデータの構造を学ぶ

UnityのAudioClipのデータを直接編集してサウンドデータの構造を学んでみます。 はじめに:サンプリングと量子化 ボリュームをコントロールする Decompress On Load にする必要アリ 片方のチャンネルだけいじる 特定の秒数だけいじる 参考

【Unity】Scriptable Build Pipelineによるビルドフロー構築入門

UnityのScriptable Build Pipelineによるビルドフロー構築方法について簡単にまとめました。 Scriptable Build Pipelineとは? インストール IBuildTaskを理解する IContextObjectを理解する 実際にIBuildTaskが使用されている部分を見る 実際にIContextObje…

【Unity】NatCorderで動画ファイルを作成する

UnityのアセットであるNatCorderで動画ファイルを作成する方法についてまとめました。 NatCorder? ゲームカメラを録画する Screen Space - OverlayにしているUIは描画できないので注意 音声付きで録画する iOS、Android実機でカメラロールに保存する Android…

【C#】非同期メソッド内でファイルIOするときの排他制御

C#で非同期メソッド内でのファイル入出力における排他制御についてまとめました。 同時読み込み・書き込みを許可するFileShare 並列読み込み・書き込みを管理する必要性 セマフォで排他制御