Unity

【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パターンでアセット検索ができるように globaパターンの書き方 参考

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

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

【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…

【Unity】【エディタ拡張】キーボードショートカットを実装する

Unityのエディタ拡張でキーボードショートカットを実装する方法をまとめました。 はじめに グローバルなショートカットを作成する EditorWindowのショートカットを作成する EditorWindowのショートカットとグローバルなショートカットのコンフリクト ショー…

【Unity】エディタ拡張で「Manager」的なものに使えるScriptableSingleton

Unityのエディタ拡張で「Manager」的なクラスを作るときに使えるScriptableSingletonという機能についてまとめます。 エディタ拡張で「Manager」的なクラス? 再生したりスクリプトをコンパイルしたりしても値を保持しておけるインスタンスを作る Unityを再起…

【Unity】【Addressable】Addressableの絡むテストを書く方法と方針の一例

UnityでAddressableの絡むテストを書く方法と方針の一例です。 やりたいこと 方針 テストを書く 関連

【Unity】【Rider】RiderでT4テキストテンプレートを使う

Unity x RiderでT4テンプレートを使う方法をまとめました。 T4テンプレートの基本的な使い方はこちら Visual Studioとの相性の悪さ~RiderのT4テンプレートサポート C# Project Generationにttを加える テンプレートファイルを作る テキストを生成する 実行…

【Unity】【シェーダ】プロシージャルな髪の異方性ハイライト(天使の輪)表現を作る方法

Unityのシェーダでプロシージャルに髪のハイライトを作る方法です。 やりたいこと binormalを使ってハイライトを作る jitterテクスチャを使う 結果 関連