Skip to content

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 29 Aug 06:04
· 4 commits to main since this release

✨ Features

  • A real release build path on both platforms — signed AAB on Android and an iOS
    archive/export flow, plus authored splash and icon variants and a web boot splash (the Android
    splash path was previously silently falling back to the system splash — now actually drawn).
  • A native-config heal — auto build number derived from git commit count, an appId/appName heal
    across native project files, and a disabledIf affordance in Project Settings for fields that
    don't apply to the current platform.
  • Editor: Project Settings split into tabs with an editable quality-tier matrix; an inline help (i)
    affordance with image previews and drop-to-set on path/asset fields; several view/session toggles
    now survive a reload; the Skin editor's weight-paint brush no longer tunnels on a fast stroke;
    SceneView UI-vs-2D click routing is now reconciled by real paint order instead of layer heuristics;
    a 2D ParticleEmitter entity gets a SceneView selection gizmo.
  • New authorable UIElement fields: scale, and scrollbarStyle (auto/tinted/hidden) with
    scrollbarThumbColor/scrollbarTrackColor for theming a scroll view's bar.
  • AudioSource.playlist + crossfadeSec walks a clip bank with crossfading.
  • MCP/agent tooling: six new tools — modoki_animation_view_mode, modoki_game_view_device(s),
    modoki_select_sprite_slice, modoki_open_skin_editor, modoki_set_skin_mode.

🐛 Fixes

  • A debug time-scale of 0 could previously ship with a scene frozen — fixed so pausing in the editor
    can no longer leak into a build.
  • A scroll view's live viewport measurement, and a UI scroll request, were each being written onto
    an authored data field instead of a runtime-only one — both split out so authoring and runtime
    state stop fighting each other.
  • A prefab's version field is now the FORMAT version rather than a function of its content — a
    content-derived bump had been making some prefabs load empty.
  • The quality-tier matrix's textureMaxSize cap was authored in Project Settings but the build
    never actually emitted it, and tier fields rejected decimal values.
  • Electron: PlayerPrefs now forces its localStorage commit instead of waiting for a clean
    shutdown, so a hard quit no longer loses player data.
  • Six asset-loader caches (animation clips, anim sets, particles, 2D rigs, sprite anims, sprite
    materials) were silently returning nothing for a guid missing from the manifest with no warning;
    a related idle-render gate wasn't re-checking refs after an asset delete/re-import. A generated MCP
    tool schema also emitted a bare unresolved $ref for a schema reused across sibling params.
  • Zone2D enter/exit could miscount or misattribute events when a despawn+respawn reused the same
    entity index.
  • Particles: a fresh GPU particle pool could be drawn before its init compute landed, and a fresh
    emitter could render before its texture was ready — both now gate on the real readiness signal
    instead of a frame count; a one-shot warning on a sub-pixel 2D effect was false-positiving on a
    real textured effect.
  • An AudioSource playlist could go silent for the rest of a session if a crossfade window was
    missed — a finished clip now always advances.
  • The loading overlay now hides on a real render-readiness signal instead of a frame count, fixing a
    permanent black-screen race and a depth-of-field pass that could blow up its light cap.
  • A recycled entity index could inherit a dead entity's leftover video decoder; a VideoTexture's
    lifetime now follows the element that owns it, not the material.
  • A light-masked video screen was silently ignoring its mask; engine material "extras" now survive
    every clone route.
  • Rendering: a light-mask selection now has hysteresis so a near-tie stops flapping; a post-FX
    stack's stage quads are precompiled so a wrapped render-to-texture pass becomes compilable.
  • iOS: a native wifiIPv4 read could crash on a NULL address; the native-config heal now rewrites a
    SceneDelegate that bypasses the app's own view controller (which had been silently killing the
    on-device debug bridge).
  • Hardened an editor backend route against a path-traversal gap in Project Settings path handling.
  • A pooled prefab that never finished caching now warns instead of retrying forever.
  • Electron: CDP status now reports the state Chromium actually observed, not the env var that
    requested it.
  • Install/build robustness: plugin dists are now stamped at postinstall so nothing rebuilds mid-run;
    ensureProjectDeps heals a stale workspace symlink, not just missing node_modules; the Windows
    installer no longer grants an unnecessary .vite-temp ACL; the vendored-plugin freshness guard now
    opens the tarball instead of trusting its name; a new npm run test:native script runs the
    iOS/Android plugin replays.

Full Changelog: v0.5.2...v0.6.0