Image to Three.js Model
img2threejs/img2threejs
Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.
“Build Unity UI Toolkit (UITK) UIs”
$ npx skills add Besty0728/Unity-Skills --skill unity-uitoolkit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Besty0728/Unity-Skills unity-uitoolkit --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/uitoolkit' .claude/skills/unity-uitoolkit && 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-uitoolkit" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/uitoolkit into .claude/skills/unity-uitoolkit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-uitoolkit", 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/uitoolkitType 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-uitoolkit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Besty0728/Unity-Skills unity-uitoolkit --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/uitoolkit' .agents/skills/unity-uitoolkit && 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-uitoolkit" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/uitoolkit into .agents/skills/unity-uitoolkit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-uitoolkit", 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-uitoolkit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Besty0728/Unity-Skills unity-uitoolkit --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/uitoolkit' .cursor/skills/unity-uitoolkit && 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-uitoolkit" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/uitoolkit into .cursor/skills/unity-uitoolkit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-uitoolkit", 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/uitoolkit'--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-uitoolkit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Besty0728/Unity-Skills unity-uitoolkit --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/uitoolkit' .gemini/skills/unity-uitoolkit && 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-uitoolkit" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/uitoolkit into .gemini/skills/unity-uitoolkit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-uitoolkit", 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-uitoolkitInstalls 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-uitoolkit -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/uitoolkit' .github/skills/unity-uitoolkit && 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-uitoolkit" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/uitoolkit into .github/skills/unity-uitoolkit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-uitoolkit", 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-uitoolkit -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-uitoolkit --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/uitoolkit' .opencode/skills/unity-uitoolkit && 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-uitoolkit" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/uitoolkit into .opencode/skills/unity-uitoolkit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-uitoolkit", 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-uitoolkitUnity Uitoolkit is a skill in Besty0728/Unity-Skills (1.8k stars). Its SKILL.md is about 4.8k tokens, with 1 other file in the folder. Licence: MIT.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit ec8aa7c. 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 xml and python).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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 Uitoolkit loads about 4.8k tokens when it runs. Until then it costs about 12 tokens; SKILL.md has 1,976 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 ec8aa7c, republished under its MIT licence (© Besty0728). 1,976 words, ~4,831 tokens.
.claude/skills/unity-uitoolkit/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.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.
Use this module for Unity UI Toolkit only: UXML for structure, USS for styling, UIDocument for scene attachment, and PanelSettings for runtime rendering.
Requires Unity 2022.3+. Do not mix this module with
ui_*UGUI/Canvas skills. Localization: Match visible UI text to the user's language. Chinese conversation -> Chinese labels/placeholders/button text. USS class names and CSS variables stay English.
uitk_read_file / uitk_find_files / uitk_get_panel_settings / uitk_list_documents / uitk_inspect_uxml / uitk_list_uss_variables / uitk_inspect_document / uitk_runtime_binding_list / uitk_worldspace_panel_get / uitk_element_reference_get,源码标 SkillMode.SemiAuto)直接执行;其余文件/场景写入类(uitk_create_* / uitk_write_file / uitk_add_* / uitk_modify_element / uitk_runtime_binding_add / uitk_uxml_upgrade / uitk_worldspace_panel_create 等,标 SkillMode.FullAuto)需用户 grant,grant 后服务端一步执行返结果。uitk_delete_file、uitk_remove_element、uitk_remove_uss_rule 标记为 SkillOperation.Delete,被 IsForbiddenInSemi 静态拦截 —— 仅 Bypass 模式或加入 Allowlist 才能调用。uitk_create_editor_window 与 uitk_create_runtime_ui 会生成 .cs 文件、必然触发域重载,因此标 MayTriggerReload = true。IsForbiddenInSemi 直读这个 flag,所以它们和上面的 Delete 类同样被静态拦截 —— Approval 与 Auto 下都返 MODE_FORBIDDEN,且这不是"需 grant"、grant 也给不了,仅 Bypass 或命中 Allowlist 才能调用。这两个是上面第一条"其余写入类需用户 grant"的例外。?mode=transactional 的批量链里含这两步,会在执行前被 400 拒绝,错误点名违规的 steps[i]。原因是域重载会清空编辑器 undo 栈,事务批量的回滚承诺无法兑现,所以服务端选择前置拒绝而不是事后失败。要在事务批量的流程里生成脚本,把这两步拆出去单独调用。AssetDatabase.ImportAsset(path) 对单个 USS/UXML 资产单独触发导入,不会调 AssetDatabase.Refresh() 触发全项目扫描;批量创建依次单独 Import。但 USS/UXML 是 ScriptedImporter 类型,Import 仍会重建依赖此资产的 PanelSettings/UIDocument 引用,触发 IMGUI 检查器刷新与场景视图重绘。DO NOT (common hallucinations):
uitoolkit_create_button / uitoolkit_create_label do not exist -> use uitk_add_elementuitoolkit_set_style does not exist -> use uitk_add_uss_rule, uitk_remove_uss_rule, or uitk_modify_elementuitoolkit_create_canvas does not exist -> UI Toolkit uses UIDocument, not Canvasuitk_* and ui_* are different systems. Do not mix UI Toolkit structure/styling assumptions into UGUI workflowsdisplay:grid, box-shadow, calc(), @media, ::before, z-index, and gradients are unsupportedbinding-path (on uitk_add_element / uitk_modify_element) is the old SerializedObject editor binding. It is not runtime data binding -> use uitk_runtime_binding_add for thatPanelRenderer through component_add; it needs world-space setup -> use uitk_worldspace_panel_createRouting:
ui modulexr_setup_ui_canvasuitk_create_from_templateuitk_create_document or uitk_set_document| Skill | Use | Key parameters |
|---|---|---|
uitk_create_uss | Create USS file | savePath, content? |
uitk_create_uxml | Create UXML file | savePath, content?, ussPath? |
uitk_read_file | Read USS/UXML content | filePath |
uitk_write_file | Overwrite USS/UXML content | filePath (must end .uss or .uxml), content |
uitk_delete_file | Delete USS/UXML file | filePath |
uitk_find_files | Search files by name/path | type?, folder?, filter?, limit? |
uitk_create_batch | Create 2+ files in one call | items |
uitk_write_fileis not a general file writer.filePathmust end in.ussor.uxml(case-insensitive). Any other extension — including none at all — is rejected withSEMANTIC_INVALID,validValues: [".uss", ".uxml"]and arelatedSkillspointer toscript_create. The check runs before the target directory is created, so a rejected call leaves no file and no stray folder behind. Do not reach for this to write a.csfile: usescript_create, which correctly declares the domain reload that writing a script causes.
| Skill | Use | Key parameters |
|---|---|---|
uitk_create_document | Create UIDocument GameObject | name, uxmlPath?, panelSettingsPath?, sortOrder?, parentName?/parentInstanceId?/parentPath? |
uitk_set_document | Change UIDocument asset bindings | name/instanceId, uxmlPath?, panelSettingsPath? |
uitk_create_panel_settings | Create PanelSettings asset | savePath, scaleMode, referenceResolutionX/Y, Unity 6 world-space options |
uitk_get_panel_settings | Read PanelSettings values | assetPath |
uitk_set_panel_settings | Update PanelSettings selectively | assetPath, changed fields only |
uitk_list_documents | List scene UIDocuments | none |
uitk_inspect_document | Inspect live VisualElement tree | name/instanceId/path, depth |
Version-gated
PanelSettingsparameters — rejected by name, never silently dropped. On bothuitk_create_panel_settingsanduitk_set_panel_settings,renderMode,forceGammaRendering,bindingLogLevel,colliderUpdateMode,colliderIsTriggerandvertexBudgetrequire Unity 6.0+, andtextureSlotCountrequires Unity 6000.3+. Passing one on an older editor returnsSEMANTIC_INVALIDnaming the parameter rather than ignoring it, so a value you sent either took effect or came back as an error — it is never quietly discarded. Both skills also resolve every enum and asset path before the first write, so a rejected call leaves the asset byte-identical; there is no partial application to clean up.
| Skill | Use | Key parameters |
|---|---|---|
uitk_add_element | Add a child element | filePath, elementType, parentName?, elementName?, text?, classes? |
uitk_remove_element | Remove by name | filePath, elementName |
uitk_modify_element | Change attributes/classes/text | filePath, elementName, text?, classes?, style?, newName?, bindingPath?, custom attribute fields |
uitk_clone_element | Duplicate an element subtree | filePath, elementName, newName? |
uitk_inspect_uxml | Parse UXML hierarchy | filePath, depth? |
| Skill | Use | Key parameters |
|---|---|---|
uitk_add_uss_rule | Add or replace selector rule | filePath, selector, properties |
uitk_remove_uss_rule | Remove selector rule | filePath, selector |
uitk_list_uss_variables | Inspect design tokens / var() usage | filePath |
| Skill | Use | Key parameters |
|---|---|---|
uitk_create_from_template | Generate paired UXML+USS | template, savePath, name? |
uitk_create_editor_window | Generate EditorWindow script | savePath, className, uxmlPath?, ussPath?, menuPath? |
uitk_create_runtime_ui | Generate runtime MonoBehaviour query scaffold | savePath, className, elementQueries? |
Supported starter templates include menu, hud, dialog, settings, inventory, list, tab-view, toolbar, card, and notification.
These skills call APIs that do not exist on every supported editor. Each one checks the running
editor first and returns a structured SEMANTIC_INVALID error carrying requiredUnityVersion and
currentUnityVersion instead of failing in an opaque way. Read the minimum version before calling.
| Skill | Minimum Unity | Use | Key parameters |
|---|---|---|---|
uitk_runtime_binding_add | 6000.0 | Add/update a <DataBinding> on a UXML element | filePath, elementName, property, bindingMode?, dataSource?, dataSourcePath?, extraAttributes? |
uitk_runtime_binding_list | none (read-only) | List bindings + data sources declared in a UXML file | filePath |
uitk_uxml_upgrade | 6000.3 (not all builds — see below) | Run registered UXML upgraders over assets | filePath?, folder?, upgraderNames?, listOnly?, limit? |
uitk_worldspace_panel_create | 6000.2 | Create a world-space UI panel GameObject | name, uxmlPath?, panelSettingsPath?, sizeMode?, worldSpaceSizeX/Y?, pivot?, pivotReferenceSize?, setPanelRenderMode? |
uitk_worldspace_panel_get | 6000.2 | Read a world-space panel's configuration | name/instanceId/path |
uitk_element_reference_get | none (read-only) | List authoring-id values and nested authoring-id paths | filePath, maxTemplateDepth? |
uitk_runtime_binding_add writes the binding into the UXML asset, so it persists — it is not a
runtime-only code call. It produces the markup Unity's UI Builder produces:
<engine:Label text="Label" data-source="ExampleObject.asset" data-source-path="simpleLabel">
<Bindings>
<engine:DataBinding property="text" binding-mode="ToTarget" />
</Bindings>
</engine:Label>data-source / data-source-path are written on the element; property / binding-mode on the <DataBinding>.bindingMode is validated against TwoWay, ToSource, ToTarget, ToTargetOnce. An invalid value is rejected before writing, because a bad binding-mode makes the whole UXML asset fail to import.elementName + property updates in place (response action is added or updated), so it is safe to re-run.extraAttributes takes a JSON object (e.g. {"update-trigger":"OnSourceChanged"}) written verbatim onto the <DataBinding> node. These are not schema-validated by the skill — a wrong attribute name breaks the asset import. Only use it for attributes you have confirmed.[CreateProperty] on the source property (Unity.Properties). The skill writes markup only; it does not create or validate the data source type.The underlying component differs by editor version, and the response's component field tells you which one was used:
PanelRenderer component (UnityEngine.UIElements.PanelRenderer, a Renderer subclass).UIDocument with its world-space properties set.Both paths accept the same parameters. sizeMode is Dynamic or Fixed (Fixed uses worldSpaceSizeX/Y); pivot accepts Center, TopLeft, TopCenter, TopRight, LeftCenter, RightCenter, BottomLeft, BottomCenter, BottomRight; pivotReferenceSize accepts BoundingBox or Layout. An unsupported value is rejected with the valid list rather than silently ignored.
World-space rendering also needs the linked PanelSettings in world-space render mode. setPanelRenderMode defaults to true, which flips that asset for you (snapshotted and undoable); the response reports panelRenderModeSetToWorldSpace. Set it to false to leave the asset alone.
uitk_uxml_upgrade drives UnityEditor.UIElements.UxmlUpgradeService. Unity documents that service
from 6000.3 on, but it is not in every 6000.3 build (6000.3.9f1 ships without it), so the skill
binds it by reflection and returns the usual SEMANTIC_INVALID refusal when the editor lacks it —
being on 6000.3+ is not a guarantee the call will run. Call it with listOnly=true first to see
whether the service exists here and which upgraders are registered and enabled — the set is not
fixed, and third-party packages can register their own. Then pass upgraderNames (comma-separated)
to run a subset, or omit it to run every enabled upgrader.
The response reports changed: true/false per asset by comparing the .uxml text before and after,
so you can tell whether an upgrader actually rewrote a file rather than assuming it did.
| Pattern | Supported in USS | What to do |
|---|---|---|
| Flex layout | Yes | Use flex-direction, flex-wrap, align-items, justify-content |
border-radius, opacity, overflow:hidden | Yes | Safe to use |
| Transforms / transitions | Yes | translate, scale, rotate work |
| CSS variables | Yes | Prefer :root tokens |
display:grid / display:block / display:inline | No | Everything is flex; emulate grids with wrapping rows |
box-shadow | No | Fake with nested background element |
linear-gradient() / radial-gradient() | No | Use image textures |
calc() / @media | No | Use explicit values + PanelSettings.scaleMode |
::before / ::after | No | Add a real child VisualElement |
z-index | No | Later siblings render on top |
| Need | USS-safe workaround |
|---|---|
| Shadow | Extra child VisualElement behind content |
| Responsive scaling | PanelSettings.scaleMode = ScaleWithScreenSize |
| Grid cards | flex-direction: row + flex-wrap: wrap + child widths |
| Circular avatar | Equal width/height + radius = half size + overflow:hidden |
| Pseudo decoration | Add an extra absolutely positioned child |
| Skill | Parameters you usually need first |
|---|---|
uitk_create_panel_settings | savePath, scaleMode, referenceResolutionX, referenceResolutionY |
uitk_create_document | name, uxmlPath, panelSettingsPath, sortOrder? |
uitk_add_element | filePath, elementType, parentName?, elementName?, text?, classes? |
uitk_modify_element | filePath, elementName, changed attributes only |
uitk_add_uss_rule | filePath, selector, properties |
PanelSettings choicesScaleWithScreenSize: default for runtime HUD/menu UIConstantPixelSize: use when strict pixel mapping mattersConstantPhysicalSize: rare; only for physically sized UI requirementsFor world-space (3D) UI on Unity 6000.2+, configure the PanelSettings first, then create the scene object with uitk_worldspace_panel_create rather than uitk_create_document.
<Style src="..."/>.uitk_inspect_uxml before complex structural edits if you did not create the file yourself.uitk_create_uxml can auto-reference a stylesheet when ussPath is provided.uitk_create_document.PanelSettings asset.<Style src="MyStyle.uss" />; use a full asset path only for cross-folder references.uitk_read_file -> edit -> uitk_write_file.uitk_create_batch.uitk_worldspace_panel_create (it sets the world-space render mode for you).uitk_create_from_template when the user needs a starter screen fast; use uitk_add_element / uitk_add_uss_rule for targeted edits on existing files.uitk_runtime_binding_add per bound property; verify with uitk_runtime_binding_list.import unity_skills
unity_skills.call_skill("uitk_create_panel_settings",
savePath="Assets/UI/GamePanel.asset",
scaleMode="ScaleWithScreenSize",
referenceResolutionX=1920,
referenceResolutionY=1080
)
unity_skills.call_skill("uitk_create_uss",
savePath="Assets/UI/HUD.uss",
content=":root { --accent: #E8632B; } .title { color: var(--accent); }"
)
unity_skills.call_skill("uitk_create_uxml",
savePath="Assets/UI/HUD.uxml",
content="<?xml version=\"1.0\" encoding=\"utf-8\"?><engine:UXML xmlns:engine=\"UnityEngine.UIElements\"><Style src=\"HUD.uss\" /><engine:Label class=\"title\" text=\"Start\" /></engine:UXML>"
)
unity_skills.call_skill("uitk_create_document",
name="HUD",
uxmlPath="Assets/UI/HUD.uxml",
panelSettingsPath="Assets/UI/GamePanel.asset"
)Things this module deliberately does not do, so you do not waste calls looking for them:
| Not available | Why | Do this instead |
|---|---|---|
Binding converters / update-trigger as first-class parameters | The UXML attribute names for type converters and update triggers are not documented in Unity's Scripting API or manual, and guessing one breaks the whole asset import | Pass confirmed attributes through extraAttributes on uitk_runtime_binding_add |
| Removing a single runtime binding | No dedicated skill | Roll back via the workflow history, or rewrite the element with uitk_write_file |
Constructing a VisualElementReference / AuthoringIdPath on an asset | These are runtime types set through the Inspector on a MonoBehaviour field; there is no editor-side API to author one into a scene or prefab from outside | Use uitk_element_reference_get to discover the authoring-id path, then assign the reference in the Inspector or in your own C# |
authoring-id authoring | The skill reads existing authoring-id attributes; it does not assign new ones | Author them in UI Builder (Unity 6000.5+) |
| World-space UI below Unity 6000.2 | UIDocument gained world-space properties in 6000.2 and PanelRenderer only exists in 6000.5+ | Use a UGUI world-space Canvas (ui module) or xr_setup_ui_canvas |
| Runtime data binding below Unity 6000.0 | DataBinding / BindingMode do not exist in 2022.3 | Use binding-path SerializedObject binding for editor UI |
uitk_element_reference_get resolves nested paths by following <Template src="..."> declarations
into other .uxml files (bounded by maxTemplateDepth, default 3, with cycle protection).
Templates it cannot resolve are reported in unresolvedTemplates rather than silently dropped.
Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.
Load USS_REFERENCE.md before generating non-trivial USS systems, layout patterns, component styles, or complete examples.
© Besty0728, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in SkillsForUnity/unity-skills~/skills/uitoolkit of Besty0728/Unity-Skills.
Open the folder on GitHubat commit ec8aa7c
Unity Uitoolkit 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 Uitoolkit this skillBesty0728/Unity-Skills | 1.8k | — | ~4.8k | Automated safety check: Pass | MIT | |
| Image to Three.js Modelimg2threejs/img2threejs | 18k | 1 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 | |
| Web CloneJane-xiaoer/claude-skill-web-clone | 1k | 2 repos | ~2.7k | Automated safety check: Pass | MIT | |
| Threejs Game Directormajidmanzarpour/threejs-game-skills | 2.4k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Game Asset Generatorhtdt/godogen | 7.1k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Threejs Gameplay Systemsvalkor-ai/loom | 1.2k | 1 repos | ~1.4k | Automated safety check: Pass | Apache-2.0 |
img2threejs/img2threejs
Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.
Jane-xiaoer/claude-skill-web-clone
网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 /…
majidmanzarpour/threejs-game-skills
Entrypoint for building, upgrading, and finishing Three.js browser games.
htdt/godogen
Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.
valkor-ai/loom
Build and iterate playable Three.js game systems: starter scaffold, architecture, design briefs, core loops, level and encounter design, entities, input, camera, collision and physics, scoring…
CyberAgentGameEntertainment/NovaShader
Execute C with Unity APIs when existing uloop tools cannot inspect or edit enough.
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.
Categories
Run `npx skills add Besty0728/Unity-Skills --skill unity-uitoolkit -a claude-code`. Or copy the skill folder (SkillsForUnity/unity-skills~/skills/uitoolkit in Besty0728/Unity-Skills) into .claude/skills/unity-uitoolkit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Besty0728/Unity-Skills --skill unity-uitoolkit -a codex`. Or copy the skill folder (SkillsForUnity/unity-skills~/skills/uitoolkit in Besty0728/Unity-Skills) into .agents/skills/unity-uitoolkit 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-uitoolkit -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-uitoolkit, .gemini/skills/unity-uitoolkit, .github/skills/unity-uitoolkit and .opencode/skills/unity-uitoolkit in your project.
SKILL.md names no scripts, command-line tools or credentials: Unity Uitoolkit is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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 Uitoolkit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.8k tokens (SKILL.md is roughly 19k 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 Uitoolkit: Image to Three.js Model (img2threejs/img2threejs, 18k stars), Web Clone (Jane-xiaoer/claude-skill-web-clone, 1k stars), Threejs Game Director (majidmanzarpour/threejs-game-skills, 2.4k stars) and Game Asset Generator (htdt/godogen, 7.1k 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,815 GitHub stars. The repository holds 82 skills in this directory. The repository was last updated on October 7, 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.