# Send Unity to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "unity",
    "name": "Unity",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/unity",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/unity",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/unity",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=unity",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "unity",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-10T10:42:50.617Z",
      "expiresAt": "2026-05-17T10:42:50.617Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=unity",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=unity",
        "contentDisposition": "attachment; filename=\"unity-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "unity"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/unity"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/unity",
    "downloadUrl": "https://openagent3.xyz/downloads/unity",
    "agentUrl": "https://openagent3.xyz/skills/unity/agent",
    "manifestUrl": "https://openagent3.xyz/skills/unity/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/unity/agent.md"
  }
}
```
## Documentation

### Lifecycle Order

Awake before Start — use Awake for self-init, Start for cross-references
OnEnable called before Start — but after Awake
Order between scripts not guaranteed — use Script Execution Order if needed
Awake called even if disabled — Start only when enabled

### GetComponent Performance

GetComponent every frame is slow — cache in Awake or Start
GetComponentInChildren searches recursively — expensive on deep hierarchies
TryGetComponent returns bool — avoids null check, slightly faster
Use RequireComponent attribute — ensures dependency, documents requirement

### Physics Timing

Physics in FixedUpdate, not Update — consistent regardless of framerate
FixedUpdate can run 0 or multiple times per frame — don't assume 1:1
Rigidbody.MovePosition in FixedUpdate — transform.position bypasses physics
Time.deltaTime in Update, Time.fixedDeltaTime in FixedUpdate — or just use deltaTime

### Unity's Fake Null

Destroyed objects aren't truly null — == null returns true, but object exists
Null-conditional ?. doesn't work properly — use == null or bool conversion
Destroy doesn't happen immediately — object gone next frame
Use DestroyImmediate only in editor — causes issues in builds

### Coroutines

StartCoroutine needs MonoBehaviour active — disabled/destroyed stops coroutines
yield return null waits one frame — yield return new WaitForSeconds(1) for time
StopCoroutine needs same method or Coroutine reference — string overload unreliable
Can't return values — use callbacks or set field in coroutine

### Instantiate and Pooling

Instantiate is expensive — pool frequently created/destroyed objects
Instantiate(prefab, parent) sets parent — avoids extra SetParent call
SetActive(false) before returning to pool — not Destroy
Pool inactive objects under a parent — keeps hierarchy clean

### Serialization

[SerializeField] for private fields in inspector — prefer over public
public fields auto-serialize — but exposes API you may not want
[HideInInspector] hides but still serializes — [NonSerialized] to skip entirely
Serialized fields keep inspector values — code defaults ignored after first serialize

### ScriptableObjects

Data containers that live as assets — share between scenes/prefabs
CreateAssetMenu attribute for easy creation — right-click → Create
Don't modify at runtime in builds — changes not saved (except in editor)
Great for config, item databases — reduces prefab duplication

### Common Mistakes

Find methods every frame — cache references
String comparisons for tags — use CompareTag("Enemy"), not tag == "Enemy"
Physics queries allocate — use NonAlloc variants: RaycastNonAlloc
UI anchors wrong — stretches unexpectedly on different resolutions
async/await without context — use UniTask or careful error handling
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: ivangdavila
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-10T10:42:50.617Z
- Expires at: 2026-05-17T10:42:50.617Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/unity)
- [Send to Agent page](https://openagent3.xyz/skills/unity/agent)
- [JSON manifest](https://openagent3.xyz/skills/unity/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/unity/agent.md)
- [Download page](https://openagent3.xyz/downloads/unity)