Install
openclaw skills install @deepseekoracle/unity-2d-3d-buildingUse when an agent must build, wire, or ship a Unity game - 2D, 3D, or 2D art over a real 3D stage: installing the engine, creating a project from a template, driving the editor through Unity's own CLI bridge or an MCP server, sourcing CC0 assets, and building to WebGL that you verify in a browser. Carries the Battle TV painted-broadcast house style as a worked reference, and a living art-method log. Ships its own self-check (scripts/check_skill.py), which audits this package's own text only - absolute paths, pinned installs, version agreement, referenced files, licence claims - and never reads, scans or judges the caller's project, repository or machine. Use for Unity, Unity 6, 6000.x, Unity MCP, the unity CLI, WebGL build, sprite, Shader Graph, URP vs built-in, licence-cleared assets, or /unity-2d-3d-building.
openclaw skills install @deepseekoracle/unity-2d-3d-buildingAn agent's guide to Unity: get the engine, make a project, drive the editor without a human clicking, source art you are allowed to ship, build it for the browser, and prove it runs. The Battle TV painted broadcast style is the worked example at the end, with its method log kept alive.
Author's home and the worked picture are external links this package neither ships nor fetches - open them in a browser: https://chatagent.ca/ · https://deepseekoracle.github.io/battle-tv-unity/
Ask where the game must be playable. That one question eliminates engines:
| Target | Engine |
|---|---|
| Plays in the browser page itself | Unity 6 (native WebGL build) or Godot |
| A download the page offers | Unity or Unreal, either one |
| A quick 2D page game | canvas/JS - an engine is the wrong tool |
| Unreal, in-page | does not exist: Epic removed HTML5 export after UE 4.24 |
Get-PhysicalDisk | Select-Object DeviceId,FriendlyName,MediaType,BusType,Size): shader
compilation belongs on the SSD, not on whichever external HDD has the most room.unity templates list --editor 6000.5.9f1 # what this editor can actually pull
unity projects new "<Name>" --path "<parent-dir>" --editor-version 6000.5.9f1 --template com.unity.template.fps
ready / upgradable / downloadable; creating one downloads and imports it.templates list is authoritative, not the Hub GUI, and the offering differs per editor version.Check for Unity's own CLI bridge before installing anything - it is often already live, and free:
unity status # open project, editor version, PID, port, state
unity list # ~142 built-in editor tools
unity command <tool> --project-path "<project>" --result-only --json
unity command <tool> ... --detach # long jobs; poll the matching *_status tool
unity list covers scene/GameObject/component/asset authoring, build + build_status (full
BuildReport), game/scene captures, console, recompile, tests, audits and bakes; unity skill show
is Unity's own agent guide.
When the CLI lacks a tool, fall back to a free MCP server (CoplayDev/unity-mcp, MIT, 34 tools, or
JESVN/unity-mcp-server, 288 tools) - never Unity's own MCP, which needs Unity Cloud plus an AI
subscription. The first connection is approved by the operator in the editor (Project Settings > AI),
so tell the user a dialog is coming, and verify every edit by reading the console back: edit,
confirm, edit again, never chain edits on an unread result. Full CLI surface, detach/poll pattern and
MCP setup: references/editor-cli.md.
Pick 2D for flat art and precise silhouettes, 3D for camera movement and lighting worth the payload, or 2D art over a 3D stage for the painted broadcast look with depth - budgeting both pipelines when you do.
references/2d-and-3d.md.Nothing gets pulled until it is clear it can ship. The gate, in order:
unityassetpack.com,
unityassetcollection.com, opengameasset.net, "50 Unity Source Codes" bundles); a real licence at
the file for any GitHub repo (MIT/Apache only - no LICENSE, or "for educational purposes", is not
permission to ship); no redistributing raw files from Mixamo-class services, which forbid it.Per-source caveats, formats and the gate as a checklist (Kenney, Quaternius, Poly Haven, KayKit,
Freesound / Sonniss, the Asset Store's free tier): references/assets-and-licences.md.
Enumerate before you fetch, then import selectively. Keep one library directory outside the
project and import only what the levels call for - importing thousands of models inflates the project,
slows every import, and bloats the shipped build with assets nobody sees. A browser-rendered catalogue
can return zero links to curl; look for an index file (kits.tsv, an API) before writing a scraper.
unity build "<project>" --create-profile WebGL # writes Assets/Settings/Build Profiles/WebGL.asset
unity build "<project>" --profile WebGL -o "<out-dir>" --no-tail --log-file "<log>"
unity build --target WebGL fails by design: use a build profile, or --execute-method.timeout, and keep it off the foreground path: a microgame-sized
WebGL build takes ~8-12 minutes and a killed run leaves a half-written Build/ with
exitCode: 143. Run it tracked in the background and poll for arriving artifacts - the files are the
proof, not the exit code.[license] ... LicensingClient has failed validation; ignoring with
Exiting batchmode successfully now! and code 0 is a success, not an error..gz with no Content-Encoding,
so the loader waits at the progress bar forever): ship the decompression-fallback build instead
(PlayerSettings.WebGL.decompressionFallback = true, confirmed by logging the value back).Full ship rules - canvas centring, short windows, Escape never being a game key, proving the new code
shipped, numeric layout asserts: references/webgl-shipping.md.
The order is the section order: target, engine on an SSD, template, agent + console read-back, cleared art, then build/serve/load/click.
Four that bite hardest, each with its fix: the GPU is one resource (a loaded local LLM and a Unity
editor cannot share a small card - name what holds the card and ask the operator to park it; only on
their word, restore it in a finally); slow work outlives a tool call (builds, imports and bulk
downloads run tracked in the background, polled by artifact, never relaunched while live); never
git add -A in a shared repo, and delete *_BurstDebugInformation_DoNotShip/; report counted
numbers, never a download list.
All fourteen, ordered by time actually lost, with the failure each caused: references/traps.md.
The house look - painted side-view fighters on a plate, additive shader overlays, a ground ring as the
quality bar, HUD above the plate - is whole in references/battle-tv-style.md, with its standing
rules (built-in pipeline, linear colour space, one fighter at a time, presentation only, never retune
fight math to fix a picture).
Art methods have one home: references/techniques.md - read it before generating a frame, importing
a sprite, parenting a prop, writing a shader or placing a hit, and treat the log as current where the two
disagree. Append one dated line under Confirmed only after a watched build shows the picture you
intended; a method merely tried is not logged, an overturned one gets a new line saying what replaced it,
and rejected tools stay listed in Rejected so the next session does not retry them.
| File | What it is |
|---|---|
references/getting-started.md | first-hour checklist, install to first verified build |
references/editor-cli.md | the unity CLI surface, detach/poll, MCP fallback, console read-back |
references/2d-and-3d.md | stage choice, sorting, sprites vs meshes, pipeline decision |
references/assets-and-licences.md | CC0 sources with caveats, the licence gate, import rules |
references/webgl-shipping.md | build to a served and verified page, with the traps |
references/traps.md | the failures that cost the most, and the fix for each |
references/battle-tv-style.md | the worked painted-broadcast style, whole |
references/techniques.md | the living art-method log (one home for methods) |
python scripts/check_skill.py # add --json for machine-readable findings
Named rules, each answering with a named boolean: no absolute local paths in the shipped text, no
floating versions in install commands, version agreement between this entry document and the package
manifest, every referenced file present, licence claims limited to hosts named in
references/assets-and-licences.md.
What this package is allowed to do, stated here so an agent host can grant exactly this and no more:
claw.json, the eight reference pages beside it, and
scripts/check_skill.py. Runs exactly one program, python scripts/check_skill.py (stdlib,
optional --json); nothing else in the package is executable.references/techniques.md, after a watched build confirms the
method.claw.json declares network.https_get: false,
http_post: false). The asset hosts in references/assets-and-licences.md are for your agent to
browse under that licence gate - nothing here fetches or uploads anything.git, publish or push
anywhere, read outside the package folder, or place a local disk path, drive letter or user folder in
the shipped text. The self-check audits this package's files only - it cannot see the caller's
repository and does not judge it.If your host needs allowed-tools: read the package folder and run python scripts/check_skill.py.
Treat every other capability as undeclared.
npx clawhub@0.23.3 install deepseekoracle/unity-2d-3d-building@1.1.4 # pin BOTH sides: CLI and package
Do not republish this skill unless the user asks. Do not put a local disk path, drive letter, or user folder in it: it is loaded on other people's machines.