Uloop Execute Dynamic Code
CyberAgentGameEntertainment/NovaShader
Execute C with Unity APIs when existing uloop tools cannot inspect or edit enough.
Automate HybridCLR C hot-update prebuild. An agent skill from Besty0728/Unity-Skills.
$ npx skills add Besty0728/Unity-Skills --skill unity-hybridclr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Besty0728/Unity-Skills unity-hybridclr --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/'SkillsForUnity/unity-skills~/skills/hybridclr' .claude/skills/unity-hybridclr && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "unity-hybridclr" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/hybridclr into .claude/skills/unity-hybridclr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-hybridclr", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/hybridclrType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Besty0728/Unity-Skills --skill unity-hybridclr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Besty0728/Unity-Skills unity-hybridclr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/'SkillsForUnity/unity-skills~/skills/hybridclr' .agents/skills/unity-hybridclr && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "unity-hybridclr" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/hybridclr into .agents/skills/unity-hybridclr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-hybridclr", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Besty0728/Unity-Skills --skill unity-hybridclr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Besty0728/Unity-Skills unity-hybridclr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/'SkillsForUnity/unity-skills~/skills/hybridclr' .cursor/skills/unity-hybridclr && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "unity-hybridclr" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/hybridclr into .cursor/skills/unity-hybridclr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-hybridclr", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Besty0728/Unity-Skills.git --path 'SkillsForUnity/unity-skills~/skills/hybridclr'--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Besty0728/Unity-Skills --skill unity-hybridclr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Besty0728/Unity-Skills unity-hybridclr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/'SkillsForUnity/unity-skills~/skills/hybridclr' .gemini/skills/unity-hybridclr && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "unity-hybridclr" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/hybridclr into .gemini/skills/unity-hybridclr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-hybridclr", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Besty0728/Unity-Skills unity-hybridclrInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Besty0728/Unity-Skills --skill unity-hybridclr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/'SkillsForUnity/unity-skills~/skills/hybridclr' .github/skills/unity-hybridclr && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "unity-hybridclr" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/hybridclr into .github/skills/unity-hybridclr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-hybridclr", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Besty0728/Unity-Skills --skill unity-hybridclr -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Besty0728/Unity-Skills unity-hybridclr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/'SkillsForUnity/unity-skills~/skills/hybridclr' .opencode/skills/unity-hybridclr && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "unity-hybridclr" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/hybridclr into .opencode/skills/unity-hybridclr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-hybridclr", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
unity-hybridclrAutomate HybridCLR C hot-update prebuild. An agent skill from Besty0728/Unity-Skills.
Unity Hybridclr is an agent skill from Besty0728/Unity-Skills. Automate HybridCLR C hot-update prebuild
Its SKILL.md is about 5.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Game Development. It works with C#. The repository describes itself as: AI automation skills specifically designed for Unity. The licence is MIT.
10 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 15a1925. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
hybridclr.doc.code-philosophy.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Unity Hybridclr loads about 5.4k tokens when it runs. Until then it costs about 14 tokens; SKILL.md has 1,949 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Besty0728/Unity-Skills at commit 15a1925, republished under its MIT licence (© Besty0728). 1,949 words, ~5,381 tokens.
.claude/skills/unity-hybridclr/SKILL.md (or your agent's skills folder).Before calling any skill in this module: if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via
GET /skills/recommend?includeSchema=true) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.
Editor-side automation for HybridCLR — the zero-cost native C# hot-update solution for IL2CPP. Covers settings CRUD, installation probing, hot-update assembly compilation, the prebuild generation pipeline, and artifact staging for a YooAsset bundle build.
This module holds zero direct references to the package. Every call resolves through reflection against the HybridCLR.Editor assembly, so the UnitySkills Editor assembly compiles identically whether or not HybridCLR is installed — there is no scripting define to set and no recompile needed after installing.
Requires:
com.code-philosophy.hybridclr(API anchored to 8.12.0), IL2CPP scripting backend, Unity 2019.4+ (2022.3+ recommended). Companion modules: yooasset for shipping the compiled DLLs as bundles, yooasset-design for the runtime loading contract, asmdef for assembly-boundary design.
Operating Mode (v1.9 three-tier):
hybridclr_status, hybridclr_install_status, hybridclr_get_paths, hybridclr_settings_get, hybridclr_validate_setup, hybridclr_get_hotupdate_dlls, hybridclr_aot_generic_refs — are SemiAuto and run directly. hybridclr_settings_set and hybridclr_copy_hotupdate_dlls are FullAuto: on MODE_RESTRICTED, run the grant protocol.RiskLevel="high"): hybridclr_compile_dlls, hybridclr_generate_all, hybridclr_generate_step. Reachable only under Bypass mode or via a user-managed Allowlist entry; the grant flow returns MODE_FORBIDDEN. This is deliberate — all three block the Editor main thread for minutes.hybridclr_status returns a MISSING_PACKAGE error with install instructions. When the package is present but a reflected member cannot be resolved (version drift), the skill returns MISSING_PACKAGE naming the exact member instead of throwing.DO NOT (common hallucinations):
hybridclr_install / hybridclr_init — do NOT exist. Installing il2cpp_plus clones two git repos and copies the entire editor il2cpp tree; it is a multi-minute network operation with no cancellation and is intentionally not a skill. Run it from HybridCLR/Installer... in the Editor, or via unity-cli (see Limitations). hybridclr_install_status only reports the state.hybridclr_build_player — NOT in this module. Building the player is build_player (Project module) or unity-cli. HybridCLR hooks the build via its own IPreprocessBuildWithReport processors; nothing extra is needed from this module.hybridclr_load_metadata / hybridclr_load_assembly — runtime APIs (HybridCLR.RuntimeApi.LoadMetadataForAOTAssembly, System.Reflection.Assembly.Load) belong in game code, not the Editor REST surface. Write them yourself.hybridclr_generate_all before every bundle rebuild — see the workflow section below. It is a pre-player-build step, not a per-hot-update step.extension=".dll" to hybridclr_copy_hotupdate_dlls. Unity would treat the staged files as managed plugins and try to load them into the Editor domain; the skill rejects it.Routing:
YooAssets.LoadAssetAsync → Assembly.Load → RuntimeApi.LoadMetadataForAOTAssembly) → write it yourself using yooasset-design.build_player or unity-cli.| Skill | Purpose | Key Parameters |
|---|---|---|
hybridclr_status | Reflection probe — the ONLY skill that works without the package. Reports installation, package version, enable, scripting backend, hot-update + AOT-patch assembly lists, and which generated artifacts exist. Call this first. | (none) |
hybridclr_install_status | il2cpp_plus local install state via InstallerController: whether libil2cpp is patched, installed vs package version, expected hybridclr / il2cpp_plus branches, Unity compatibility. | (none) |
hybridclr_get_paths | Resolve every input/output path for a build target — HybridCLRData root, local il2cpp dir, hot-update DLL dir, stripped AOT dir, link.xml, AOTGenericReferences.cs. Use to wire outputs into a YooAsset collector. | buildTarget? |
| Skill | Purpose | Key Parameters |
|---|---|---|
hybridclr_settings_get | Read every HybridCLRSettings field, plus the resolved assembly lists SettingsUtil derives from asmdef assets and raw names (this is what the pipeline actually uses). | (none) |
hybridclr_settings_set | Write settings and persist to ProjectSettings/HybridCLRSettings.asset. Only the parameters you pass change; fields this HybridCLR version does not declare are listed in unsupportedFields; the full prior object is snapshotted for workflow undo. | enable?, useGlobalIl2cpp?, hotUpdateAssemblies?, hotUpdateAssemblyDefinitions?, preserveHotUpdateAssemblies?, patchAOTAssemblies?, externalHotUpdateAssemblyDirs?, hotUpdateDllCompileOutputRootDir?, strippedAOTDllOutputRootDir?, outputLinkFile?, outputAOTGenericReferenceFile?, maxGenericReferenceIteration?, maxMethodBridgeGenericIteration?, hybridclrRepoURL?, il2cppPlusRepoURL? |
| Skill | Purpose | Key Parameters |
|---|---|---|
hybridclr_validate_setup | Pre-flight check: package present, enable, IL2CPP backend, libil2cpp patched and version-matched, hot-update assemblies configured and resolvable, patchAOTAssemblies populated, link.xml / AOTGenericReferences.cs present, hot-update DLLs compiled. Returns categorised errors (blocking) and warnings (advisory), each with a concrete fix. | buildTarget? |
| Skill | Purpose | Key Parameters |
|---|---|---|
hybridclr_compile_dlls | CompileDllCommand.CompileDll(target, developmentBuild) — compile hot-update assemblies into HybridCLRData/HotUpdateDlls/<target>. Prior output is backed up for workflow undo. | buildTarget?, developmentBuild=false |
hybridclr_generate_all | PrebuildCommand.GenerateAll() — the full pipeline for the active build target: compile_dll → il2cpp_def → link_xml → aot_dlls → method_bridge → aot_generic_reference. Rewrites C# under Assets/, so a domain reload follows. | (none) |
hybridclr_generate_step | Run one pipeline step: il2cpp_def, link_xml, aot_dlls, method_bridge, aot_generic_reference, clean_il2cpp_cache. Assumes hot-update DLLs are already compiled. | step, buildTarget? |
| Skill | Purpose | Key Parameters |
|---|---|---|
hybridclr_get_hotupdate_dlls | List compiled DLL artifacts with size + UTC timestamp, reconciled against the configured assembly list — surfaces missing and unexpected entries. | buildTarget? |
hybridclr_copy_hotupdate_dlls | Stage compiled DLLs (optionally the stripped AOT DLLs too) into a directory under Assets/, renamed to an importable extension so a YooAsset collector can pack them. Destination files are backed up for workflow undo. | destination, buildTarget?, extension=".bytes", assemblies?, includeAotAssemblies=false, clearDestination=false |
hybridclr_aot_generic_refs | Read generated AOTGenericReferences.cs — timestamp, declared PatchedAOTAssemblyList, and an inSync comparison against settings.patchAOTAssemblies with missingFromSettings / extraInSettings diffs. | includeContent=false |
The two modules split cleanly: HybridCLR produces DLLs, YooAsset ships them. The staging step in between is hybridclr_copy_hotupdate_dlls, which renames .dll → .bytes so Unity imports them as TextAsset (a bare .dll under Assets/ would be treated as a managed plugin).
One-time setup (per project, and again after any AOT-side code change):
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)Iterative hot-update loop (every time hot-update C# changes — no generate_all, no player rebuild):
# 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")Where the boundary sits: runtime loading is game code you write, not a skill. Load the .bytes TextAsset through YooAsset, then RuntimeApi.LoadMetadataForAOTAssembly(aotBytes, HomologousImageMode.SuperSet) for each AOT metadata DLL before Assembly.Load(hotUpdateBytes). Order matters. See yooasset-design for the handle-lifecycle rules.
When to re-run generate_all: only when AOT-side code changes (anything outside the hot-update asmdefs), when you add/remove a hot-update assembly, or before shipping a new player build. Generic instantiations reachable only from new hot-update code also require it — that is what AOTGenericReferences.cs records.
hybridclr_status is the only skill that works without the package. Every other skill returns MISSING_PACKAGE. Unlike the YooAsset module there is no compile define — detection is pure reflection, so no recompile is needed after installing.hybridclr_compile_dlls, hybridclr_generate_all and hybridclr_generate_step block the Editor main thread. UnitySkills runs all skills on the main thread through a single queue, so /health and /jobs also stall for the duration. Raise the client timeout to at least 10 minutes; a socket timeout does not cancel the operation.generate_all and generate_step step="aot_dlls" run a scripts-only BuildPipeline.BuildPlayer internally into HybridCLRData/StrippedAOTDllsTempProj/<target>. Both refuse to start when BuildPipeline.isBuildingPlayer is true. The step temporarily flips EditorUserBuildSettings.buildScriptsOnly and the platform "export project" flags, restoring them in a finally — an Editor crash mid-step can leave them changed.patchAOTAssemblies must match the generated PatchedAOTAssemblyList. Run hybridclr_aot_generic_refs after any generation and copy missingFromSettings into hybridclr_settings_set(patchAOTAssemblies=[...]). inSync=false means generic instantiations will throw at runtime. The generated list carries .dll suffixes and the setting does not; the skill compares on the stem, so pass either form.hybridclr_settings_set(hotUpdateAssemblies=["A"]) discards any previously configured names. Read with hybridclr_settings_get first and pass the full intended array.HybridCLRSettings is not an AssetDatabase asset. It is a ScriptableObject serialized to ProjectSettings/HybridCLRSettings.asset via InternalEditorUtility.SaveToSerializedFileAndForget, so it will not appear in asset_* skills, and Unity's undo stack cannot revert the file — only the workflow snapshot can.outputLinkFile and outputAOTGenericReferenceFile are relative to Assets/; hotUpdateDllCompileOutputRootDir and strippedAOTDllOutputRootDir are relative to the project directory. hybridclr_get_paths returns both the raw and absolute forms.externalHotUpdateAssembliyDirs. The skill parameter is spelled correctly (externalHotUpdateAssemblyDirs) and maps to it; hybridclr_settings_get returns the upstream spelling under settings.hotUpdateAssemblyDefinitions (or a name in hotUpdateAssemblies). Code outside those assemblies is AOT and cannot be hot-updated — changing it requires a new player build.hybridclr_validate_setup distinguishes errors from warnings. Errors block hot update entirely (no IL2CPP, libil2cpp unpatched, no hot-update assemblies). Warnings are staleness signals (DLLs not compiled yet, patchAOTAssemblies empty) that are normal early in setup.InstallerController.InstallDefaultHybridCLR() is reachable by reflection but deliberately not exposed: it clones two git repos over the network and copies the editor's entire il2cpp tree, with no progress reporting or cancellation, and would hold the main-thread queue for the whole time. Use the HybridCLR/Installer... window, or unity-cli in batch mode.AsyncJobService jobs — HybridCLR's commands are synchronous main-thread Unity APIs with no step boundaries to pump, so there is no jobId to poll. Treat them as long blocking calls.hybridclr_settings_set restores fully. hybridclr_compile_dlls and hybridclr_copy_hotupdate_dlls restore the affected directory from a file backup under Library/UnitySkills/HybridCLRBackups/. hybridclr_generate_all and hybridclr_generate_step restore only the two Assets-side artifacts (link.xml, AOTGenericReferences.cs) plus the hot-update DLL directory — intermediates under HybridCLRData/ and generated C++ under LocalIl2CppData-*/ are rebuildable and deliberately out of scope. Re-run the pipeline rather than relying on undo for those.compile_dlls / copy_hotupdate_dlls degrade to "added files removed, previous files not restored". Library/ is not version-controlled, so backups do not survive a Library wipe.IPreprocessBuildWithReport / IPostprocessBuildWithReport hooks (CheckSettings, CopyStrippedAOTAssemblies, PatchScriptingAssemblyList, the Xcode source injectors) run automatically during the player build and are not configurable from this module.MISSING_PACKAGE naming it, rather than silently doing nothing.hybridclr_aot_generic_refs parses generated text, not IL. patchedAOTAssemblyList is read exactly from the PatchedAOTAssemblyList initializer, but genericTypeCount counts comment lines in the generator's // {{ AOT generic types block and is an approximation. Pass includeContent=true when you need the file verbatim.Every generation entry point is a [MenuItem]-annotated public static parameterless method, so anything this module cannot do is reachable through -executeMethod in batch mode:
| Menu | -executeMethod target |
|---|---|
| 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 |
Running these headless avoids the main-thread blocking problem entirely — see unity-cli. Installation has no parameterless menu method; it must go through the Installer window.
Every skill resolves these against the HybridCLR.Editor assembly. Verified against hybridclr_unity 8.12.0 source.
| Skill | Reflected target |
|---|---|
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 public fields + HybridCLRSettings.Save(); resolved lists via SettingsUtil.HotUpdateAssemblyNames{Exclude,Include}Preserved and 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) and .CleanIl2CppBuildCache(), Commands.AOTReferenceGeneratorCommand.GenerateAOTGenericReference(BuildTarget) |
hybridclr_get_hotupdate_dlls / _copy_hotupdate_dlls | SettingsUtil.GetHotUpdateDllsOutputDirByTarget, GetAssembliesPostIl2CppStripDir, HotUpdateAssemblyFilesIncludePreserved, AOTAssemblyNames |
hybridclr_aot_generic_refs | HybridCLRSettings.outputAOTGenericReferenceFile; output shape from AOT.GenericReferenceWriter.Write |
Note SettingsUtil.HotUpdateAssemblyNamesIncludePreserved throws when a name appears in both hotUpdateAssemblies and preserveHotUpdateAssemblies. The skills catch it and surface the message in resolveErrors / hotUpdateAssemblyResolveError rather than failing the call.
com.code-philosophy.hybridclr 8.12.0. All type names, member names and signatures above are taken from that Editor source.hybridclr_install_status reports the exact minimum for the running editor. This Skill module is verified against Unity 2022.3 and 6000.3.hybridclr_validate_setup reports this as a blocking error.For authoritative parameter names, defaults, and return fields, query GET /skills/schema?category=HybridCLR or unity_skills.get_skill_schema(). This document is a routing / best-practice guide, not the signature source.
© Besty0728, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in SkillsForUnity/unity-skills~/skills/hybridclr of Besty0728/Unity-Skills.
Open the folder on GitHubat commit 15a1925
Unity Hybridclr next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Unity Hybridclr this skillBesty0728/Unity-Skills | 1.8k | — | ~5.4k | Automated safety check: Pass | MIT | |
| Uloop Execute Dynamic CodeCyberAgentGameEntertainment/NovaShader | 1.6k | 1 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Locus Unity BridgeMisaka-Mikoto-Tech/agent-skills | 278 | — | ~4k | Automated safety check: Pass | MIT | |
| Gameobject Component List AllIvanMurzak/Unity-MCP | 4.4k | — | ~846 | Automated safety check: Pass | Apache-2.0 | |
| Validate GsdkPlayFab/gsdk | 170 | — | ~645 | Automated safety check: Pass | Apache-2.0 | |
| Aibridge Development WorkflowFlameskyDexive/Legends-Of-Heroes | 929 | — | ~790 | Automated safety check: Pass | MIT |
CyberAgentGameEntertainment/NovaShader
Execute C with Unity APIs when existing uloop tools cannot inspect or edit enough.
Misaka-Mikoto-Tech/agent-skills
A skill your agent uses when an agent needs to inspect or control a real Unity Editor through Locus, especially when Unity MCP is unavailable, named-pipe discovery is needed, C must be executed, or…
IvanMurzak/Unity-MCP
List the fully-qualified C type names of every concrete UnityEngine.Component subclass available in the project.
PlayFab/gsdk
Validates PlayFab Game Server SDK (GSDK) integrations in game server projects.
FlameskyDexive/Legends-Of-Heroes
AIBridge/Unity 项目的标准开发工作流。Use when creating, modifying, fixing, refactoring, or validating C code, Unity assets, prefabs, editor tools, package structure, tests, AGENTS.md, or local Skills.
TomLeeLive/openclaw-unity-plugin
Control Unity Editor via OpenClaw Unity Plugin. An agent skill from TomLeeLive/openclaw-unity-plugin.
Besty0728/Unity-Skills
Automate the Unity Editor through a local REST API — scripts, scenes, prefabs, assets, materials, lighting, tests and hundreds of other Editor operations.
Besty0728/Unity-Skills
Edit Unity Animator Controllers and drive runtime parameters
Besty0728/Unity-Skills
Advise on Unity gameplay and system architecture. An agent skill from Besty0728/Unity-Skills.
Besty0728/Unity-Skills
Unified batch and async-job orchestration. An agent skill from Besty0728/Unity-Skills.
Besty0728/Unity-Skills
Drive Unity Behavior behavior graphs and blackboard variables
Besty0728/Unity-Skills
Capture and query the Unity Editor console. An agent skill from Besty0728/Unity-Skills.
Works with
Categories
Automate HybridCLR C hot-update prebuild. An agent skill from Besty0728/Unity-Skills. Unity Hybridclr is an agent skill from Besty0728/Unity-Skills.
Unity Hybridclr fits situations like: game Development work in your project.
Run `npx skills add Besty0728/Unity-Skills --skill unity-hybridclr -a claude-code`. Or copy the skill folder (SkillsForUnity/unity-skills~/skills/hybridclr in Besty0728/Unity-Skills) into .claude/skills/unity-hybridclr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Besty0728/Unity-Skills --skill unity-hybridclr -a codex`. Or copy the skill folder (SkillsForUnity/unity-skills~/skills/hybridclr in Besty0728/Unity-Skills) into .agents/skills/unity-hybridclr in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Besty0728/Unity-Skills --skill unity-hybridclr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/unity-hybridclr, .gemini/skills/unity-hybridclr, .github/skills/unity-hybridclr and .opencode/skills/unity-hybridclr in your project.
SKILL.md names no scripts, command-line tools or credentials: Unity Hybridclr is instructions for the agent only. Our summary lists: Python 3.
SKILL.md names 1 domain. As links in the text: hybridclr.doc.code-philosophy.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Unity Hybridclr is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.4k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Unity Hybridclr: Uloop Execute Dynamic Code (CyberAgentGameEntertainment/NovaShader, 1.6k stars), Locus Unity Bridge (Misaka-Mikoto-Tech/agent-skills, 278 stars), Gameobject Component List All (IvanMurzak/Unity-MCP, 4.4k stars) and Validate Gsdk (PlayFab/gsdk, 170 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Besty0728 (a GitHub user) maintains it in Besty0728/Unity-Skills, which has 1,819 GitHub stars. The repository holds 82 skills in this directory. The repository was last updated on October 8, 2026.
Source: Besty0728/Unity-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.