scenario-unity-mobile
Use when a Unity 6.3 game targets Android or iOS: phone frame budget, overheating after 20 minutes, 'my game stutters on phones', ASTC or ETC2 textures, audio import, URP mobile settings, touch controls, on-screen joystick, UI under the notch or safe area, slow startup, ANRs, 'Android build fails',…
Install / Use
npx skills add scenario-labs/skills --skill scenario-unity-mobileInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
MarketingSupported Platforms
Our assessment of scenario-unity-mobile
scenario-unity-mobile scores 63/100 on our quality scale, 282nd of 295 Marketing skills we index.
Its SKILL.md is 18 KB long, well organised into 10 sections and no code examples: a thorough specification that gives an agent plenty to work with.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- We could not determine when the repository was last updated.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 68/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-27. Automated pattern scan on 2026-09-27. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
scenario-unity-mobile compared with similar skills
All 4 of these similar skills score higher than scenario-unity-mobile; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| scenario-unity-mobile (this skill)by scenario-labs | 63 | 0 | — | SKILL.md |
| Agent-Reachby Panniantong | 100 | 85.7k | 12d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 73.9k | today | CLAUDE.md |
| crawl4aiby unclecode | 100 | 84.4k | 2d ago | MCP Server |
| Scraplingby D4Vinci | 100 | 84.0k | today | MCP Server |
Frequently asked questions
- How do I install scenario-unity-mobile?
- Run
npx skills add scenario-labs/skills --skill scenario-unity-mobile. The install tabs above show the steps for each supported agent. - Which AI agents does scenario-unity-mobile work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is scenario-unity-mobile safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 68/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is scenario-unity-mobile still maintained?
- We could not determine when the repository was last updated.
Skill content
View source on GitHubname: scenario-unity-mobile description: "Use when a Unity 6.3 game targets Android or iOS: phone frame budget, overheating after 20 minutes, 'my game stutters on phones', ASTC or ETC2 textures, audio import, URP mobile settings, touch controls, on-screen joystick, UI under the notch or safe area, slow startup, ANRs, 'Android build fails', AAB, keystore signing, target API 36, Google Play upload, iOS Xcode export or archive, privacy manifest, app size, in-app purchases (IAP 5), rewarded ads (LevelPlay), ad consent." license: MIT
Unity mobile (mobile specialist)
Expert mobile work means a game that holds its frame rate after twenty minutes on a three-year-old phone, starts fast, installs from the store, and never double-charges or double-grants. The stance: budget the sustained frame, prove every setting on the data the device gets (imported format, built bundle, exported Xcode project), and treat stores, SDKs and money code as contracts with ugly event orders. Target: Unity 6000.3.21f1, URP 17.3, Input System 1.20, macOS with Xcode 26.6. If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.
REQUIRED BACKGROUND: scenario-unity-expert (channels, review loop, 6.3 traps). Toolkit: scripts/ut_mobile.py (imports ut_env, ut_run, ut_stat), editor jobs in scripts/AgentKit/Mobile/, player code in scripts/Runtime/.
Stance (the expert delta)
- Budget the sustained frame, not the peak. About 65% of 1000/fps (10.8 ms at 60, 21.7 ms at 30), judged on p95 and max, on the lowest phone, short bursts, 10 to 15 minutes of cooldown; assume vsync, so a missed refresh halves the rate (Unity mobile e-book). Under heat, lower render scale first only when the GPU is the bottleneck: resolution barely helps a CPU-bound frame (6.3 Manual). Prove the policy with synthetic thermal events, not a hot phone (d5O4Uw6gPBI [00:04:21]). Editor timings are relative; draw and SetPass counts are the stable Editor evidence (observed).
- Check the effective format, then lock the rule. A texture the GPU cannot sample is decompressed to RGBA32 on the CPU (6.3 Manual); an HDR map without an ASTC HDR override imported as ETC2_RGBA8 (observed). ASTC 4x4 UI and faces, 6x6 default, 8x8 big environment maps [added]; crunch does nothing on ASTC. Audio: WAV sources, mono SFX at 22,050 Hz at most, ADPCM under 200 KB, Streaming only above about 400 KB (e-book). An
AssetPostprocessorkeeps new assets compliant (Unity Enterprise Support, j4YAY36xjwE [00:19:07]). - Mobile URP is not PC URP with a lower slider. Depth Priming Disabled (unsupported on Android, iOS and TBDR), Native RenderPass on, Depth and Opaque textures off unless sampled, HDR off or 32-bit, soft shadows off, Store Actions Auto or Discard (6.3 Manual). One URP asset per Quality tier; a batch editor launched for Android still reported Quality "PC" (observed; same trap in 2J0kDtUGlrY [frame 00:10:28]).
- Release builds are reproducible from the environment. Unity never stores keystore passwords: set them in the build process from env vars; Google refuses the debug keystore (6.3 Manual; LlamAcademy, GTaXWgKz0e8 [00:06:24]). Development Build off, symbols in the bundle from the first upload: Play never symbolicates crashes received before the symbols (6.3 Manual). Check the built bundle, not the settings.
- The Android main thread and the splash are shared budgets. Most game ANRs happen while backgrounding: nothing heavy in
OnApplicationPause, SDK init staggered after milestones, symbols shipped; read the signature, the previous exit reason on next launch, and exclude low-revenue devices that dominate ANRs (Unity Android team, pezwIhA0e04 [00:27:24], [00:25:12], [00:13:13], [00:41:40], [00:29:02]). The Resources index and first-sceneAwakerun under the splash (j4YAY36xjwE [00:33:59]); a loader scene reports its real interactive frame withCallReportFullyDrawn(6.3 Manual). - Money code is idempotent. Validate, grant, then
ConfirmPurchase; dedupe by transaction id in flight and persisted; pending orders fromOnPurchasesFetchedgo through the same path; aFailedOrderon confirm is retried with the kept order, never regranted; buy only fetchedProductobjects; never revoke on an empty Google fetch; show the store's localized price; handjwsRepresentationto attribution SDKs (IAP 5 docs; Unity, szS2KMxZsl4 [00:07:27], [00:09:28], [00:11:38]). Grant rewarded ads inOnAdRewardedwhatever the callback order. - Touch is events and virtual devices; the HUD lives in one safe-area panel. EnhancedTouch, never
Touchscreen.currentin Update; on-screen controls emit a virtual Gamepad; thumb controls at Constant Physical Size (Input System team, ptvjumIHxYg [00:20:29]).movementRangeis a radius (observed). Render outside the safe area on, HUD in aSafeAreaFitterpanel (Chema Damak, PLQ4ywB13eg [00:10:53]); UI Toolkit top =Screen.height - safeArea.yMax(proven by test). The Device Simulator is one finger, no performance, noUNITY_IOS, no native plug-ins (6.3 docs). - SDKs and stores are contracts. Consent answered before the first ad request, ad SDK init after the first milestone, nothing monetized in the first 10 to 15 minutes, offers when the player is stuck (Creauctopus, ILv7GzDgteQ [00:01:58], [00:09:00]); SKAdNetworkItems and every SDK's privacy manifest on iOS, AD_ID on API 33+ (LevelPlay docs; 6.3 Manual), the ATT text when you track [added]; Data safety answered from the SDK vendors' guides; one internal-track upload before IAP products can exist (GTaXWgKz0e8 [00:09:06]; UXl_C3ZnRLc [00:02:28]). 6000.3.21f1 defaults to IAP 4.15.1 and LevelPlay 8.10.1: pin 5.4.3 and 9.5.1 first.
Establish first
Stores (Play needs an AAB); min-spec device list (GPU family decides ASTC vs ETC2); target fps per tier; download budget; orientation; ad network, IAP products, consent regimes (GDPR, CCPA, child-directed) and whether a backend validates receipts; signing material (keystore path and env var names, Apple team id: the human keeps them); whether a phone is connected (none here: device steps become a hand-over). Defaults: Mobile_High 60 fps and Mobile_Low 30 fps (Low ships, the director promotes), ASTC 6x6, min API 25, target API 36, iOS 15, IL2CPP ARM64, Vulkan then OpenGLES3, Minimal stripping to start.
Workflow
- Baseline.
MobileTiers.AuditRendering,MobileBuild.AuditPlayerSettings,MobileTextures.AuditTextures,MobileAudio.AuditAudio,MobileStartup.AuditStartup,ut_mobile.code_scan(P),ut_mobile.package_check(P), all withbuild_target="Android". GATE: findings listed, Editor Quality level recorded. - Tiers and thermals.
MobileTiers.ApplyTiers;MobileTierDirectorwith PlayMode syntheticFeedevents. GATE:AuditRendering0 errors; per-tier captures opened; the thermal test lowers lodBias and (GPU-bound only) render scale, restores both. - Assets.
FixTextures,FixAudio,AuditMeshes, thenImportedFormatsandImportedAudioper target;import_rules.jsonforMobileImportRules. GATE: 0 errors and warns, all ASTC, imported sizes down, new assets arrive compliant; captures before and after any Max Size drop. - Input and UI.
SafeAreaFitter,BuildTouchHud,FloatingTouchStick. GATE:SafeAreaTestsandTouchInputTestspass;CaptureSafeAreafitted HUD clear, naive HUD blocked. - Frame budget.
AgentProfile.PlayModeTimingsper tier,budget_verdict(csv, fps);DeviceSoakLoggergoes into the development build. GATE: sustained verdict pass; device soak listed as Assumed. - Monetization. Pin packages; logic in
PurchaseLedger,RewardGate,AdPacing,AdsInitGate; adaptersIap5Store(validate, price, jws) andLevelPlayAds(privacy flags before init). GATE:MonetizationTestspass, adapters compile against the pinned packages,code_scanandpackage_checkclean. - Android release.
make_keystore,MobileBuild.BuildAndroidwithenv=keystore_env(ks). GATE: Succeeded;aab_findings0 errors (not debuggable, 16 KB pages, symbols, AD_ID if ads);bundletool_sizesunder budget, else Build Report by size then Play Asset Delivery; passwords not persisted. - iOS release. Privacy manifest in
Assets/Plugins,BuildIos,xcode_facts+xcode_findings. GATE: Succeeded, reasons carried, target GUIDs reported;ios_archive_plancommands (archive, App Store export, thinning report) shown to the human and run only with approval. - Device and store hand-over. Soak CSV judged by
soak_verdict, native GPU profilers, Android vitals with ANR triage andExitInfo, sandbox purchase and restore, LevelPlay test suite then removal, Play Console and App Store Connect steps (procedures M13).
Numbers
| Value | Relative to | Source | | ------------------------------------- | ------------------------------------------------------------------------- | ---------------------------------- | | 16.67 / 10.83 ms, 33.33 / 21.67 ms | raw / sustained (65%) budget at 60 and 30 fps | e-book | | 10 to 15 min; 20 to 30 min | cooldown between device captures; soak length | e-book; [added] | | up to 1 ms CPU | each enabled camera on low-end mobile | e-book | | 8 to 0.89 bpp | ASTC 4x4 to 12x12 | 6.3 Manual | | < 200 KB / > 350 to 400 KB; 22,050 Hz | audio load type buckets; mobile SFX sample rate ceiling | e-book | | 200 MB / 100 MB | AAB base module / APK on Play; also the iOS cellular download limit (200) | 6.3 Manual | | 16 KB (p_align 0x4000) | every native library's LOAD segments, Android 15+ pages | version deltas | | API 25 / 36 | 6.3 minimum / Play target since 2026-08-31 (6.5 raises the minimum to 26) | version deltas | | iOS 15, A8; Xcode 26 + iOS 26 SDK | 6.3 minimum; App Store since 2026-04-28 | version deltas | | 5 s (10 s on some Samsung); 128 bytes | ANR timeout; exit state summary | pezwIhA0e04 [00:02:01], [00:42:13] | | 3 days | Google refunds an unacknowledged purchase | IAP 5 docs | | 10 to 15 min; every 3 min | monetization-free start; interstitial interval after a milestone | ILv7GzDgteQ (heuristics) | | 54998 to 55511 | outbound ports for iOS remote profiling | 6.3 Manual | | 0.125 to 0.925 | default Gamepad stick deadzone applied to on-screen stick values | observed |
Quality gates
- Measurable: every audit at 0 errors (warns justified);
ImportedFormatsall ASTC; NUnit (SafeAreaTests,TouchInputTests,MonetizationTests,TierDirectorTests) failed == 0;budget_verdictsustained pass;aab_findingsandxcode_findings0 errors;bundletool_sizeswithin budget;code_scanandpackage_check0 errors; on device,soak_verdictpass over 20 minutes or more. - Visual: tier and safe-area captures pass
image_checksand were opened; before/after blur check for every Max Size drop.
C
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
85.7kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
73.9kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
crawl4ai
84.4kOpen-source web crawler and scraper for LLMs and AI agents: any website into clean, LLM-ready Markdown. Run it yourself, or use Crawl4AI Cloud with one key.
Scrapling
84.0k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
