はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

Unity

【Unity】UnityでローカルLLMを手軽に動かせるOSS・公式パッケージ三選 (gemma-unity-plugin, LLMUnity, Unity Sentis)

この記事は Unity Advent Calendar 2025の5日目の記事になります! qiita.com昨日は @tsubasamusu さんの「【Unity】Unity エディタと Unreal エディタでローカルマルチプレイしよう!~Unity 編~」でした。 【Unity】Unity エディタと Unreal エディタでロ…

Unityの正確なリリースノート情報を取得してくれるMCP ServerをOSSとして公開しました

はじめに 記事書くのが遅くなりましたが、先日Unityのリリースノート情報を取得してくれるunity-release-note-mcpをOSSとして公開しました。Unityで正確なリリースノート情報をgemini等々が答えてくれなかったことがあったので、Unity Release APIを活用して…

【Rider】Rider 2025.3からIL ViewerでUnityによって生成および後処理されたILを見れるようになった

はじめに ついにRider2025.3がリリースされたのですが、新機能の一つとしてUnityにより生成されたILを表示できるようになりました。 実際に利用している様子 Unity code in the IL Viewer The IL Viewer tool window now shows the intermediate language (I…

【Unity】AssetBundleを解析してくれるMCP Server「AssetBundleMCP」をOSSとして公開しました

はじめに 先日AssetBundleMCPというAssetBundleを解析するMCP Serverを公開しました。AssetBundleを解析してくれるMCP ServerをOSSとして公開しました!「AssetBundleに含まれるテクスチャの一覧を教えて」といった質問をgemini-cliやcopilot agentでできる…

【Unity】プロパティをインスペクターに表示するために[field: SerializeField]を利用していても[FormerlySerializedAs]でリネーム対応できる

はじめに 以前からプロパティでも[field: SerializeField]と記述することでインスペクターに表示できることは知っていました。 public class Sandbox : MonoBehaviour { [field: SerializeField] public float Value { get; private set; } } インスペクター…

【Unity】Assets以下でファイル・フォルダに特定の名前をつけると非表示にすることができる

はじめに OSS見ていて気づいたのですが、Samples~のようなフォルダ名だとAssets以下に表示されていないことに気づきました。github.com知識がなくなんでだろうと思っていたところ、どうやら特定の命名をするとUnity上で非表示になるっぽいです。そこら辺を調…

【Unity】Unity 2023.1.0f1よりAssetDatabase.StartAssetEditing/StopAssetEditingをより安全に実行できるようにしたAssetEditingScopeが実装された

はじめに AssetDatabaseはアセットの作成・削除・移動・コピーなどの操作をすることができます。特に大量のアセットに大して操作を行ったりすると、なかなか処理が終わらずにパフォーマンス上の問題がでてきたりします。 docs.unity3d.comそこでAssetDatabas…

【C#】UniTaskのIObservable.ToUniTaskをR3でもやりたいときの対処法(FirstAsync・LastAsync)

はじめに UniRxを利用していたときはIObservable.ToUniTaskを活用したコードをよく書いてました。 // OnNextがされるまで待つ var result = await subject.ToUniTask(useFirstValue: true, cancellationToken: source.Token); // OnCompletedがされるまで待…

【Unity】Obi FluidでHDRPで利用するためのセットアップ方法

はじめに 今回はObi Fluidという流体シミュレーションを簡単に作成できるアセットのHDRPでのセットアップ方法を紹介したいと思います。 実際に利用している様子 Obi は、変形可能なさまざまなマテリアルの動作をシミュレートできる、高度な粒子ベースの物理…

【Unity】「UnityYAMLを紐解く!Unityを使わない自動化のすゝめ」という内容で登壇しました

はじめに Unity エディタ拡張 完全に理解した勉強会で「UnityYAMLを紐解く!Unityを使わない自動化のすゝめ」という内容で登壇をしました。 Unity エディタ拡張完全に理解した 勉強会 - connpass発表資料をブログでも載せておくのと、この記事ではちょっとコ…

【Unity】.unitypackageをUnityを利用せずに展開・圧縮できるPowerShellのモジュールを作った話 (CI/CDでも利用可)

はじめに 先日.unitypackageをUnityを利用せずに展開・圧縮できるPowerShellのモジュールを作成しました。Unityを利用せずに.unitypackageに圧縮・展開ができるOSSを公開しました!!PowerShellのモジュールとしてインストールでき、MacのターミナルやWidnow…

【Unity】Editor.DrawPropertiesExcludingを用いてUnityが提供するコンポーネント含めインスペクターに表示されているプロパティを非表示にする

はじめに 例えばUnityが提供しているImageコンポーネントですが、Colorというプロパティだけ非表示にしたいみたいなモチベーションがあったとします。 ImageコンポーネントただInspector拡張をする際にbase.OnInspectorGUI()をしてしまうと、Colorが表示され…

【Unity】Android 15以降で16KBページサイズのサポート必須になった場合に開発者は再ビルド等の対応をしないといけない話

はじめに Android 14まで4KBベージサイズをサポートしていましたが、Android 15にて16KBページサイズがオプショナルで使用できるようになりました。 developer.android.comページサイズが増えたことでメモリ使用量が若干増加しますが、様々な箇所でパフォー…

【Unity】インスペクタ拡張をした際にコンポーネントの左上に文字が表示されてしまうバグ(?)について

はじめに ほとんどの人があったことがないと思いますが、インスペクター拡張をしていてちょっと面白い現象に出会ったので紹介したいと思います。 インスペクターの表示がおかしくなっている様子具体的にはコンポーネントの左上に謎の文字がでてくるというバ…

【Unity】シリアライズされた情報を維持しつつコンポーネント差し替えをコード上から実行する方法

はじめに 今回はシリアライズされた情報を維持しつつコンポーネントを差し替えをコード上から実行する方法を紹介したいと思います。 はじめに 概要 コード上から変更する方法 参考 概要 UnityEditor上でのシリアライズされた情報を維持しつつのコンポーネン…

【Unity】ファイルがReadonlyなPackageに含まれるかどうかをスクリプトから調べる方法

はじめに Scene(.unity)を開こうとしたら以下のようなエラーが表示されることがあります。 readonlyなpacakgeを開こうとした時に表示されるエラーUnity Package Manager(UPM)では複数の取得方法がありますが、取得方法によってはReadOnlyなPackageになります…

【Unity】UI ToolkitのScrollViewを強制的に再描画させる方法

はじめに UI Toolkitを使用していて、ScrollViewのScrollbarを再描画したいと思い以下のコードを書きました。 var scrollView = uxml.Q("SampleScrollView"); scrollView.MarkDirtyRepaint(); 割と名前から推測してしまっていますが、これだと特に動作しない…

【Unity2024 Advent Calendar】Unityのコードメトリクスを可視化するための分析基盤の作り方(CodeCoveragePackage + coverlet.collector + octocov + BigQuery + Looker Studio)

はじめに こちらはUnity2024 Advent Calendarの12/20記事になります。是非他の方の記事もチェックしてみてください。 qiita.com今回はUnityでのコードメトリクスを可視化するための分析基盤の作り方について紹介したいと思います。 PRのコメントでコードメト…

【Unity】com.unity.search.extensionsに依存しているとEditMode TestがFailする話

はじめに 先日Unityが公開している(といってもOfficialではない)パッケージであるcom.unity.search.extensionsに依存しているプロジェクトのEditMode TestがFailしてしまうことに気が付きました。 EditMode Testが失敗している様子ValidateCustomIndexation(…

【Unity】生成したコードをPrefabに自動でアタッチする方法

はじめに 今回は生成したコードをPrefabに自動アタッチする方法を紹介したいと思います。 はじめに 概要 コンパイル後にアタッチする 実験 概要 PrefabへのアタッチにはPrefabUtilityを利用すると簡単に実現できます。 docs.unity3d.com private static void…

【Unity】YetAnotherHttpHandlerを用いてHTTP/2を扱えるHttpClientを作成する

はじめに 今回はYetAnotherHttpHandlerを用いてUnityでHTTP/2を扱う方法を紹介したいと思います。 はじめに 背景 概要 環境 インストール方法 使い方 さいごに 背景 まず.NETが提供するHttpClientですが、.NET Core3.0以降であればHTTP/2に対応しています。 …

【Unity】UI ToolkitのTwoPaneSplitViewをコードから動的に生成せずに利用する方法

はじめに UI ToolkitのTwoPaneSplitViewというVisualElementがあるのですが、それがめちゃくちゃ便利です。2つの要素をリサイズできるようにしつつ分割して表示してくれるものになります。 docs.unity3d.com TwoPaneSplitViewよくコードからTwoPaneSplitView…

【Unity】.asmrefはCore CLRがくると動作しなくなるよという話

はじめに UnityはMonoからCore CLRへの移行を進めていますが、Core CLRがくると.asmrefが使えなくなるみたいです。そのあたりを軽く調べてみたので、そのまとめを書き残しておきたいと思います。また現時点ではまだ開発中なので、今後変わるかも知れないので…

【Unity】RiderのBreakpointにてEvaluate and logが出力に表示されないときの対処法(Breakpoint Trace message outputを設定する必要あり)

はじめに RiderにはBreakpointにてEvaluate and log(評価して記録)というブレークポイントに到達したときに値の評価しログ出力できる機能があります。 Evaluate and log JetBrains Rider では、任意の行、メソッド、例外ブレークポイントをトレースポイント…

【Unity】UI ToolkitでWindow画面いっぱいに表示ができないときの対処法(Unityが自動生成するTemplateContainerの影響)

はじめに 今回はUI Toolkitで画面いっぱいに何かを表示したいときの方法を紹介したいと思います。 画面いっぱいに表示している様子 はじめに UI Builderと実際の見た目が異なる 原因 対処法 参考 UI Builderと実際の見た目が異なる BackgroudColorを赤色に設…

【C#】Incremental SourceGeneratorを利用した爆速Enumユーティリティライブラリを作成した話

はじめに 先日、SourceGeneratorを利用したパフォーマンスの良いEnumユーティリティを提供するライブラリを公開しました。 github.com.NET標準API や 世界最速のenumライブラリ FastEnum よりもパフォーマンスが良いライブラリ RapidEnum リリースしました!…

【C#】MessagePack-CSharpでCustom Formatterを定義して、独自の型やサードパーティー製ライブラリに含まれる型に対応する方法

はじめに 今回はMessagePack-CSharpでCustom Formatterを作成する方法を紹介したいと思います。github.com はじめに 概要 環境 やり方 Custom Formatterの作成 Resolverの作成 よりパフォーマンスを上げるために MessagePackSerializerOptionsへの設定 実験 …

【Unity】SourceGeneratorにてRegisterPostInitializationOutputでAttributeを定義した際に特定のアセンブリにしか含めたくない場合は、asmdefのVersion Definesを用いると実現できる

はじめに SourceGeneratorにてRegisterPostInitializationOutputを用いてAttributeを定義するのは、公式も紹介しているようなよくある手法です。 RegisterPostInitializationOutput:... It is particularly useful for adding attribute definitions to the …

【C#, Unity】VYamlを用いてYAML(Unityで利用される特殊な形式を含む)をシリアライズ・デシリアライズする方法

はじめに 今回はVYamlを用いてYAML(Unityで利用される特殊な形式を含む)をシリアライズ・デシリアライズする方法を紹介したいと思います。github.com はじめに UnityとYAML VYamlとは インストール方法 Unityの場合 基本的な使い方 命名規則 あらかじめSchem…

【Rider】Riderの日本語言語パックを利用して表示を日本語にする(Japanese Language Pack / 日本語言語パック)

はじめに 今回はRiderを日本語化しようという記事になります。 日本語化した状態 はじめに やり方 参考 やり方 Riderを開き、メニューバーよりFile -> Settingsを選択。 File -> SettingsタブバーからPluginsを選択し、Japanese Language Packを検索しインス…