unity-hybridclr について
unity-hybridclr は、HybridCLR の設定、ホットアップデートアセンブリのコンパイル、ビルド成果物の生成、YooAsset 向け DLL のステージングを行う Unity Editor 用スキルモジュールです。Unity 開発者向けで、反射を使うため HybridCLR 未導入でもアセンブリをコンパイルできます。
主な機能
- 01インストール、設定、パス、成果物の確認
- 02HybridCLR 設定の検証と修正案の提示
- 03ホットアップデートアセンブリのコンパイル
- 04生成パイプライン全体または個別ステップの実行
- 05YooAsset バンドル向け DLL のステージング
活用シーン
- 01ビルド前のプロジェクト設定確認
- 02ホットアップデートコード変更後の DLL コンパイル
- 03プレイヤービルド前の成果物生成
- 04YooAsset コレクター向け DLL のステージング
MCP 対応
MCP クライアントに、HybridCLR の状態確認、設定、検証、コンパイル、生成、成果物処理を行う Unity Editor スキルを提供します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ besty0728/ unity-skills --skill unity-hybridclrインストール後、Claude Code で/unity-hybridclrを入力して読み込まれたか確認します。
詳細
このモジュール内のスキルを呼び出す前に: 名前や説明から推測したパラメータでスキルを呼び出そうとしている場合は、STOP — まずこのファイルを読んでください (または
GET /skills/recommend?includeSchema=trueでスキーマを取得してください)。recommend/schema からパラメータ定義をすでに取得している場合は、そのまま dryRun に進んでかまいません。
トリガー
- ホットアップデートアセンブリの構成
- ホットアップデート DLL のコンパイル
- AOTGenericReferences/link.xml の生成
- HybridCLR セットアップの診断
- 出力を YooAsset ビルドに接続
- 配置热更程序集、编译热更 DLL、生成 AOTGenericReferences/link.xml、排查 HybridCLR 环境、把产物接进 YooAsset 打包链路
Unity HybridCLR スキル
HybridCLR 向けのエディター側自動化 — IL2CPP のためのゼロコストなネイティブ C# ホットアップデートソリューションです。設定の CRUD、インストールの検出、ホットアップデートアセンブリのコンパイル、プリビルド生成パイプライン、および YooAsset バンドルビルドに向けた成果物のステージングをカバーします。
このモジュールは、このパッケージへの直接参照を一切持ちません。 すべての呼び出しは HybridCLR.Editor アセンブリに対するリフレクションを通じて解決されるため、UnitySkills Editor アセンブリは HybridCLR がインストールされているかどうかに関係なく同一にコンパイルされます — 設定すべきスクリプティングシンボルはなく、インストール後の再コンパイルも不要です。
必要環境:
com.code-philosophy.hybridclr(API は 8.12.0 に準拠)、IL2CPP スクリプティングバックエンド、Unity 2019.4+ (2022.3+ を推奨)。 コンパニオンモジュール: コンパイル済み DLL をバンドルとして配布するための yooasset、ランタイム読み込みの契約については yooasset-design、アセンブリ境界の設計については asmdef。
ガードレール
動作モード(v1.9 の 3 段階):
- 承認(デフォルト):読み取り専用の 7 つのスキル —
hybridclr_status、hybridclr_install_status、hybridclr_get_paths、hybridclr_settings_get、hybridclr_validate_setup、hybridclr_get_hotupdate_dlls、hybridclr_aot_generic_refs— はSemiAutoで、直接実行されます。hybridclr_settings_setとhybridclr_copy_hotupdate_dllsは FullAuto です。MODE_RESTRICTEDの場合は、許可プロトコルを実行してください。 - 自動実行禁止(NeverInSemi、
RiskLevel="high"):hybridclr_compile_dlls、hybridclr_generate_all、hybridclr_generate_step。実行できるのは Bypass モード、またはユーザーが管理する Allowlist エントリー経由のみです。許可フローではMODE_FORBIDDENが返されます。これは意図的な設定です。この 3 つは Editor のメインスレッドを数分間ブロックするためです。 - パッケージが見つからない場合、
hybridclr_status以外のすべてのスキルは、インストール手順を含むMISSING_PACKAGEエラーを返します。パッケージは存在するものの、リフレクション対象のメンバーを解決できない場合(バージョンのずれ)、スキルは例外をスローする代わりに、該当するメンバー名を示すMISSING_PACKAGEを返します。
禁止事項(よくある幻覚):
hybridclr_install/hybridclr_init— これらは存在しません。il2cpp_plus のインストールでは、2 つの git リポジトリをクローンし、editor の il2cpp ツリー全体をコピーします。ネットワーク経由で数分かかる処理で、キャンセルできないため、意図的にスキルにはしていません。Editor の HybridCLR/Installer... から、または unity-cli 経由で実行してください(「制限事項」を参照)。hybridclr_install_statusは状態を報告するだけです。hybridclr_build_player— このモジュールにはありません。プレイヤーのビルドにはbuild_player(Project モジュール)または unity-cli を使用します。HybridCLR は独自のIPreprocessBuildWithReportプロセッサー経由でビルドにフックするため、このモジュールで追加の作業は必要ありません。hybridclr_load_metadata/hybridclr_load_assembly— ランタイム API(HybridCLR.RuntimeApi.LoadMetadataForAOTAssembly、System.Reflection.Assembly.Load)はゲームコードに属するものであり、Editor REST サーフェスには含まれません。自分で記述してください。- バンドルを再ビルドするたびに
hybridclr_generate_allを呼び出してはいけません — 詳細は以下のワークフローのセクションを参照してください。これはプレイヤーのビルド前の手順であり、ホットアップデートごとの手順ではありません。 hybridclr_copy_hotupdate_dllsにextension=".dll"を渡してはいけません。Unity はステージングされたファイルをマネージドプラグインとして扱い、Editor ドメインに読み込もうとするため、このスキルでは拒否されます。
ルーティング:
- HybridCLR の設定、インストールの確認、DLL のコンパイル、生成パイプライン、成果物のステージング → このモジュール。
- ステージングされた DLL のバンドルへのパッキング、コレクターの設定、ビルドレポート → yooasset。
- ランタイムのホットアップデート読み込みコード(
YooAssets.LoadAssetAsync→Assembly.Load→RuntimeApi.LoadMetadataForAOTAssembly)→ yooasset-design を使用して自分で記述してください。 - ホットアップデート側に含めるアセンブリの決定 → asmdef。
- 実際のプレイヤービルド →
build_playerまたは unity-cli。
スキル
環境(3)
| スキル | 目的 | 主なパラメーター |
|---|---|---|
hybridclr_status | リフレクションによる確認 — パッケージがなくても動作する唯一のスキルです。インストール状況、パッケージのバージョン、enable、スクリプティングバックエンド、ホットアップデートおよび AOT パッチ対象のアセンブリ一覧、生成済みの成果物を報告します。最初に呼び出してください。 | (なし) |
hybridclr_install_status | InstallerController を通じた il2cpp_plus のローカルインストール状態:libil2cpp にパッチが適用されているか、インストール済みバージョンとパッケージのバージョン、想定される hybridclr / il2cpp_plus ブランチ、Unity との互換性。 | (なし) |
hybridclr_get_paths | ビルドターゲットのすべての入出力パスを解決します — HybridCLRData ルート、ローカル il2cpp ディレクトリ、ホットアップデート DLL ディレクトリ、ストリップ済み AOT ディレクトリ、link.xml、AOTGenericReferences.cs。出力を YooAsset のコレクターに接続する際に使用します。 | buildTarget? |
設定(2)
| スキル | 目的 | 主なパラメーター |
|---|---|---|
hybridclr_settings_get | すべての HybridCLRSettings フィールドと、asmdef アセットおよび生の名前から SettingsUtil が導出する解決済みのアセンブリリストを読み取ります(パイプラインで実際に使用される内容です)。 | (なし) |
hybridclr_settings_set | 設定を書き込み、ProjectSettings/HybridCLRSettings.asset に保存します。変更されるのは渡したパラメーターのみです。この HybridCLR バージョンで宣言されていないフィールドは unsupportedFields に一覧表示されます。ワークフローの取り消しに備え、変更前のオブジェクト全体がスナップショットとして保存されます。 | enable?, useGlobalIl2cpp?, hotUpdateAssemblies?, hotUpdateAssemblyDefinitions?, preserveHotUpdateAssemblies?, patchAOTAssemblies?, externalHotUpdateAssemblyDirs?, hotUpdateDllCompileOutputRootDir?, strippedAOTDllOutputRootDir?, outputLinkFile?, outputAOTGenericReferenceFile?, maxGenericReferenceIteration?, maxMethodBridgeGenericIteration?, hybridclrRepoURL?, il2cppPlusRepoURL? |
診断(1)
| スキル | 目的 | 主なパラメーター |
|---|---|---|
hybridclr_validate_setup | 事前チェックを実行します。パッケージの有無、enable、IL2CPP バックエンド、libil2cpp のパッチ適用とバージョン一致、ホットアップデートアセンブリの設定と解決可能性、patchAOTAssemblies の設定、link.xml / AOTGenericReferences.cs の有無、ホットアップデート DLL のコンパイル状況を確認します。具体的な修正方法を含む、分類済みの errors(ブロッキング)と warnings(参考情報)を返します。 | buildTarget? |
コンパイルと生成(3)— ブロッキング、高リスク
| スキル | 目的 | 主なパラメーター |
|---|---|---|
hybridclr_compile_dlls | CompileDllCommand.CompileDll(target, developmentBuild) を実行し、ホットアップデートアセンブリを HybridCLRData/HotUpdateDlls/<target> にコンパイルします。ワークフローの取り消しに備え、既存の出力はバックアップされます。 | buildTarget?, developmentBuild=false |
hybridclr_generate_all | PrebuildCommand.GenerateAll() を実行します。アクティブなビルドターゲット向けの全パイプラインです。compile_dll → il2cpp_def → link_xml → aot_dlls → method_bridge → aot_generic_reference の順に実行します。Assets/ 内の C# ファイルを書き換えるため、その後にドメインリロードが行われます。 | (なし) |
hybridclr_generate_step | パイプラインのステップを1つ実行します。il2cpp_def、link_xml、aot_dlls、method_bridge、aot_generic_reference、clean_il2cpp_cache を指定できます。ホットアップデート DLL がすでにコンパイルされていることを前提とします。 | step, buildTarget? |
アーティファクト(3)
| スキル | 目的 | 主なパラメーター |
|---|---|---|
hybridclr_get_hotupdate_dlls | コンパイル済み DLL アーティファクトを、サイズと UTC タイムスタンプとともに一覧表示します。設定済みのアセンブリリストと照合し、missing および unexpected の項目を示します。 | buildTarget? |
hybridclr_copy_hotupdate_dlls | コンパイル済み DLL(必要に応じて、ストリップ済み AOT DLL も)を Assets/ 配下のディレクトリに配置し、YooAsset のコレクターでパックできるよう、インポート可能な拡張子に変更します。ワークフローの取り消しに備え、コピー先のファイルはバックアップされます。 | destination, buildTarget?, extension=".bytes", assemblies?, includeAotAssemblies=false, clearDestination=false |
hybridclr_aot_generic_refs | 生成済みの AOTGenericReferences.cs を読み取ります。タイムスタンプ、宣言された PatchedAOTAssemblyList、および settings.patchAOTAssemblies との inSync 比較(missingFromSettings / extraInSettings の差分を含む)を取得します。 | includeContent=false |
HybridCLR × YooAsset ワークフロー
2つのモジュールは役割が明確に分かれています。**HybridCLR が DLL を生成し、YooAsset がそれを配信します。**その間のステージング処理は hybridclr_copy_hotupdate_dlls です。.dll を .bytes に名前変更することで、Unity がそれらを TextAsset としてインポートします(Assets/ 内の .dll はマネージドプラグインとして扱われます)。
初回セットアップ(プロジェクトごと、および AOT 側のコード変更後に再度実行):
u.call_skill("hybridclr_settings_set",
enable=True,
hotUpdateAssemblyDefinitions=["Assets/HotUpdate/HotUpdate.asmdef"])
u.call_skill("hybridclr_validate_setup") # fix every `errors` entry before continuing
u.call_skill("hybridclr_generate_all") # minutes; domain reload follows
refs = u.call_skill("hybridclr_aot_generic_refs")
u.call_skill("hybridclr_settings_set", patchAOTAssemblies=refs["patchedAOTAssemblyList"])
# then build the player normally (build_player / unity-cli)
反復的なホットアップデートのループ(ホットアップデート対象の C# に変更があるたびに実行します。generate_all もプレイヤーの再ビルドも不要です):
# 1. edit hot-update C# (script_* skills) — must live in a hotUpdateAssemblyDefinitions asmdef
# 2. compile
u.call_skill("hybridclr_compile_dlls", buildTarget="Android")
u.call_skill("hybridclr_get_hotupdate_dlls", buildTarget="Android") # verify `missing` is empty
# 3. stage into the YooAsset collector directory
u.call_skill("hybridclr_copy_hotupdate_dlls",
destination="Assets/HotUpdateDlls",
buildTarget="Android",
extension=".bytes",
includeAotAssemblies=True, # ships the stripped AOT metadata DLLs too
clearDestination=True)
# 4. pack (yooasset module) — the collector only needs adding once
u.call_skill("yooasset_add_collector",
packageName="DefaultPackage", groupName="HotUpdateCode",
collectPath="Assets/HotUpdateDlls",
addressRule="AddressByFileName", packRule="PackDirectory")
u.call_skill("yooasset_build_bundles",
packageName="DefaultPackage", buildTarget="Android", packageVersion="auto")
境界となる部分:ランタイムの読み込みは、スキルではなく、作成するゲームコードです。YooAsset を通じて .bytes の TextAsset を読み込んだ後、Assembly.Load(hotUpdateBytes) の前に、AOT メタデータ DLL ごとに RuntimeApi.LoadMetadataForAOTAssembly(aotBytes, HomologousImageMode.SuperSet) を実行します。順序が重要です。ハンドルのライフサイクルに関するルールは、yooasset-design を参照してください。
generate_all を再実行するタイミング:AOT 側のコード(ホットアップデート対象の asmdef の外にあるもの)を変更したとき、ホットアップデート対象のアセンブリを追加・削除したとき、または新しいプレイヤービルドをリリースする前に限ります。新しいホットアップデートコードからのみ到達可能なジェネリックのインスタンス化にも、再実行が必要です。これらは AOTGenericReferences.cs に記録されます。
重要なルール(必ずお読みください)
hybridclr_statusは、パッケージなしで動作する唯一のスキルです。 それ以外のスキルはすべてMISSING_PACKAGEを返します。YooAsset モジュールとは異なり、コンパイル定義はありません。検出はリフレクションのみで行われるため、インストール後に再コンパイルする必要はありません。hybridclr_compile_dlls、hybridclr_generate_all、hybridclr_generate_stepは、Editor のメインスレッドをブロックします。 UnitySkills はすべてのスキルを単一のキューを通じてメインスレッドで実行するため、その間は/healthと/jobsも停止します。クライアントのタイムアウトを少なくとも 10 分に設定してください。ソケットのタイムアウトが発生しても、操作はキャンセルされません。generate_allとgenerate_step step="aot_dlls"は、内部でスクリプトのみを対象とするBuildPipeline.BuildPlayerをHybridCLRData/StrippedAOTDllsTempProj/<target>に対して実行します。 どちらもBuildPipeline.isBuildingPlayerがtrueの場合は開始を拒否します。このステップではEditorUserBuildSettings.buildScriptsOnlyとプラットフォームの「プロジェクトをエクスポート」フラグを一時的に切り替え、finallyで復元します。ステップの実行中に Editor がクラッシュすると、これらの値が変更されたままになる場合があります。patchAOTAssembliesは、生成されたPatchedAOTAssemblyListと一致させる必要があります。 生成後はhybridclr_aot_generic_refsを実行し、missingFromSettingsの内容をhybridclr_settings_set(patchAOTAssemblies=[...])にコピーしてください。inSync=falseの場合、ジェネリック型のインスタンス化は実行時に例外を発生させます。生成されたリストには.dllサフィックスが付きますが、設定には付きません。このスキルは拡張子を除いた名前で比較するため、どちらの形式を指定してもかまいません。- 配列パラメーターは既存の値に追加されず、置き換えられます。
hybridclr_settings_set(hotUpdateAssemblies=["A"])を実行すると、以前に設定した名前はすべて破棄されます。先にhybridclr_settings_getで値を読み取り、意図する配列全体を指定してください。 HybridCLRSettingsは AssetDatabase のアセットではありません。InternalEditorUtility.SaveToSerializedFileAndForgetを使ってProjectSettings/HybridCLRSettings.assetにシリアライズされるScriptableObjectであるため、asset_*スキルには表示されません。また、Unity の Undo スタックではこのファイルを元に戻せません。元に戻せるのはワークフローのスナップショットだけです。- パスフィールドには、異なる基準パスが 2 種類あります。
outputLinkFileとoutputAOTGenericReferenceFileはAssets/からの相対パスです。hotUpdateDllCompileOutputRootDirとstrippedAOTDllOutputRootDirはプロジェクトディレクトリからの相対パスです。hybridclr_get_pathsは、相対パスと絶対パスの両方を返します。 - 上流のフィールド名にはスペルミスがあり、
externalHotUpdateAssembliyDirsとなっています。 スキルのパラメーター名は正しいスペル(externalHotUpdateAssemblyDirs)で、上流のフィールド名に対応しています。hybridclr_settings_getは、settings内で上流のスペルを返します。 - ホットアップデートするコードは、
hotUpdateAssemblyDefinitionsに列挙された asmdef(またはhotUpdateAssembliesに列挙された名前)のいずれかに含まれている必要があります。 それ以外のアセンブリのコードは AOT となり、ホットアップデートできません。変更するには、新しいプレイヤービルドが必要です。 hybridclr_validate_setupはerrorsとwarningsを区別します。 エラーがあるとホットアップデート全体がブロックされます(IL2CPP がない、libil2cpp にパッチが適用されていない、ホットアップデート用アセンブリがない)。警告は古い状態を示すもので(DLL がまだコンパイルされていない、patchAOTAssembliesが空など)、セットアップの初期段階では通常の状態です。
制限事項
- インストール用スキルはありません。
InstallerController.InstallDefaultHybridCLR()はリフレクション経由で呼び出せますが、意図的に公開していません。ネットワーク経由で2つの git リポジトリをクローンし、エディターの il2cpp ツリー全体をコピーしますが、進捗表示もキャンセル機能もなく、処理中はメインスレッドのキューを占有し続けるためです。HybridCLR/Installer... ウィンドウを使うか、バッチモードで unity-cli を使用してください。 - 同期実行です。 これらの操作は
AsyncJobServiceのジョブではありません。HybridCLR のコマンドは、処理を継続するためのステップ境界がない、同期的な Unity メインスレッド API です。そのため、ポーリングするjobIdはありません。長時間ブロックする呼び出しとして扱ってください。 - 生成時のワークフローの取り消しは一部のみです。
hybridclr_settings_setは完全に復元します。hybridclr_compile_dllsとhybridclr_copy_hotupdate_dllsは、Library/UnitySkills/HybridCLRBackups/内のファイルバックアップから対象ディレクトリを復元します。hybridclr_generate_allとhybridclr_generate_stepが復元するのは、Assets 側の2つの成果物(link.xml、AOTGenericReferences.cs)とホットアップデート DLL ディレクトリのみです。HybridCLRData/内の中間生成物とLocalIl2CppData-*/内の生成済み C++ は再生成可能なため、意図的に対象外としています。これらについては取り消しに頼らず、パイプラインを再実行してください。 - バックアップはラベルごとに直近5世代を保持します。
compile_dlls/copy_hotupdate_dllsの古い取り消し手順では、「追加されたファイルは削除されますが、以前のファイルは復元されません」という状態になります。Library/はバージョン管理されていないため、Library を消去するとバックアップも失われます。 - ビルドプロセッサーは制御できません。 HybridCLR の
IPreprocessBuildWithReport/IPostprocessBuildWithReportフック(CheckSettings、CopyStrippedAOTAssemblies、PatchScriptingAssemblyList、Xcode ソースインジェクター)はプレイヤーのビルド中に自動実行され、このモジュールから設定することはできません。 - バージョンの差異は推測せず報告します。 リフレクションの対象は 8.12.0 に固定されています。メンバーを解決できない場合、スキルは何もせずに処理を終えるのではなく、そのメンバー名を示す
MISSING_PACKAGEを返します。 hybridclr_aot_generic_refsは IL ではなく、生成されたテキストを解析します。patchedAOTAssemblyListはPatchedAOTAssemblyList初期化子からそのまま読み取りますが、genericTypeCountはジェネレーターの// {{ AOT generic typesブロック内のコメント行を数えるため、概算です。ファイルの内容をそのまま取得する必要がある場合は、includeContent=trueを渡してください。
unity-cli による代替手段
すべての生成エントリーポイントは、[MenuItem] 属性が付いた、引数なしの public static メソッドです。そのため、このモジュールで実行できない操作は、バッチモードで -executeMethod を使って実行できます。
| メニュー | -executeMethod の対象 |
|---|---|
| HybridCLR/Generate/All | HybridCLR.Editor.Commands.PrebuildCommand.GenerateAll |
| HybridCLR/CompileDll/ActiveBuildTarget | HybridCLR.Editor.Commands.CompileDllCommand.CompileDllActiveBuildTarget |
| HybridCLR/Generate/LinkXml | HybridCLR.Editor.Commands.LinkGeneratorCommand.GenerateLinkXml |
| HybridCLR/Generate/Il2CppDef | HybridCLR.Editor.Commands.Il2CppDefGeneratorCommand.GenerateIl2CppDef |
| HybridCLR/Generate/AOTDlls | HybridCLR.Editor.Commands.StripAOTDllCommand.GenerateStripedAOTDlls |
| HybridCLR/Generate/MethodBridgeAndReversePInvokeWrapper | HybridCLR.Editor.Commands.MethodBridgeGeneratorCommand.GenerateMethodBridgeAndReversePInvokeWrapper |
| HybridCLR/Generate/AOTGenericReference | HybridCLR.Editor.Commands.AOTReferenceGeneratorCommand.CompileAndGenerateAOTGenericReference |
ヘッドレスで実行すると、メインスレッドがブロックされる問題を完全に回避できます。詳しくは unity-cli を参照してください。インストールには引数なしのメニューメソッドがないため、Installer ウィンドウから実行する必要があります。
リフレクション対象
すべてのスキルは、HybridCLR.Editor アセンブリを対象にこれらを解決します。hybridclr_unity 8.12.0 のソースで検証済みです。
| スキル | リフレクション対象 |
|---|---|
hybridclr_status | SettingsUtil.Enable、SettingsUtil.HotUpdateAssemblyNamesExcludePreserved、SettingsUtil.AOTAssemblyNames、Installer.InstallerController |
hybridclr_install_status | Installer.InstallerController — HasInstalledHybridCLR()、PackageVersion、InstalledLibil2cppVersion、MajorVersion、GetCompatibleType()、GetCurrentUnityVersionMinCompatibleVersionStr()、HybridclrLocalVersion、Il2cppPlusLocalVersion、LocalVersionFile |
hybridclr_get_paths | SettingsUtil.{ProjectDir, HybridCLRDataDir, LocalUnityDataDir, LocalIl2CppDir, GeneratedCppDir, HotUpdateDllsRootOutputDir}、GetHotUpdateDllsOutputDirByTarget(BuildTarget)、GetAssembliesPostIl2CppStripDir(BuildTarget) |
hybridclr_settings_get / _set | Settings.HybridCLRSettings.Instance のパブリックフィールド + HybridCLRSettings.Save()。解決済みリストは SettingsUtil.HotUpdateAssemblyNames{Exclude,Include}Preserved および HotUpdateAssemblyFilesIncludePreserved 経由で取得します |
hybridclr_compile_dlls | Commands.CompileDllCommand.CompileDll(BuildTarget, bool) |
hybridclr_generate_all | Commands.PrebuildCommand.GenerateAll() |
hybridclr_generate_step | Commands.Il2CppDefGeneratorCommand.GenerateIl2CppDef()、Commands.LinkGeneratorCommand.GenerateLinkXml(BuildTarget)、Commands.StripAOTDllCommand.GenerateStripedAOTDlls(BuildTarget)、Commands.MethodBridgeGeneratorCommand.GenerateMethodBridgeAndReversePInvokeWrapper(BuildTarget) および .CleanIl2CppBuildCache()、Commands.AOTReferenceGeneratorCommand.GenerateAOTGenericReference(BuildTarget) |
hybridclr_get_hotupdate_dlls / _copy_hotupdate_dlls | SettingsUtil.GetHotUpdateDllsOutputDirByTarget、GetAssembliesPostIl2CppStripDir、HotUpdateAssemblyFilesIncludePreserved、AOTAssemblyNames |
hybridclr_aot_generic_refs | HybridCLRSettings.outputAOTGenericReferenceFile。出力形式は AOT.GenericReferenceWriter.Write に基づきます |
SettingsUtil.HotUpdateAssemblyNamesIncludePreserved は、hotUpdateAssemblies と preserveHotUpdateAssemblies の両方に同じ名前が含まれている場合、例外をスローすることに注意してください。スキルはこの例外を捕捉し、呼び出しを失敗させるのではなく、メッセージを resolveErrors / hotUpdateAssemblyResolveError に表示します。
バージョンの対象範囲
- 対象:
com.code-philosophy.hybridclr8.12.0。上記の型名、メンバー名、シグネチャはすべて、このバージョンの Editor ソースに基づいています。 - 最小 Unity バージョン:HybridCLR 自体は 2019.4.0 以降 / 2020.3.0 以降 / 2021.3.0 以降 / 2022.3.0 以降 / 2023.2.0 以降 / 6000.0.0 以降(6000.3 ブランチでは 6000.3.0 以降)をサポートします。
hybridclr_install_statusは、実行中のエディターに対する正確な最小バージョンを報告します。この Skill モジュールは Unity 2022.3 および 6000.3 で検証済みです。 - IL2CPP のみ。Mono ビルドでは HybridCLR を使用できません。
hybridclr_validate_setupは、これをブロッキングエラーとして報告します。 - 古いバージョンや新しいパッケージバージョンでも、メンバーを解決できる機能は引き続き動作します。解決できないメンバーは、黙ってスキップされず、名前を指定して報告されます。
正確なシグネチャ
パラメーター名、デフォルト値、戻り値のフィールドを確認するには、GET /skills/schema?category=HybridCLR または unity_skills.get_skill_schema() を照会してください。このドキュメントはルーティングとベストプラクティスのガイドであり、シグネチャの情報源ではありません。