Skip to content

OnlyWorlds Unity SDK 0.4.0

Choose a tag to compare

@tmoosting tmoosting released this 11 Oct 12:31
· 94 commits to main since this release

Added

  • List filters: OWListParams.Name, NameContains, Supertype and Subtype send the API's name,
    name__icontains, supertype and subtype filters. ListAllAsync now carries every filter onto every page.

Fixed

  • The World Browser no longer demands a PIN to connect. Prefixed keys read without one, and a legacy key needs one
    only for writes or a private world, so the demo keys that worked in code were locked out of the browser. The
    settings window now says when a PIN is needed for each kind of key.
  • The editor's key, PIN and base URL are kept per project. They lived in one machine-wide EditorPrefs entry,
    so every project on the machine shared one key, and a key rotated for one world went stale in all the others.
    They are now scoped by the project's PlayerSettings.productGUID (clones and worktrees of one project share
    them), still in EditorPrefs, still never in the project. A project with no key of its own offers the
    machine-wide key an earlier version saved ("Use it here" in the settings window); it is never read silently.
  • The World Browser loads the whole world on connect, in the background, so every type's count and every
    link's name show before a type is clicked; before, a link read as a raw id and a count stayed blank until its
    type was opened. A type clicked during the load still opens at once. Unnamed markers read as their zone and
    order (" · 3") instead of "(unnamed)", and type names are capitalised.
  • The World Browser shows a folder world or a cache with no key. A key is needed to reach the API, not to
    read what is already on disk; with none set, the browser showed only the setup prompt, even over an open
    folder world, which needs no account at all.

Changed

  • Schema pin moved to v0.32.0-dist.20 (from dist.15, by way of dist.18 and dist.19): canonical
    00.32.00. The World gains length_unit, mass_unit and distance_unit (the world units) and created_at,
    updated_at and public_read, and loses api_key, user and version from its definition; GetWorldAsync
    returns the World as a JObject, so all of it arrives with no code change (world["length_unit"]). The element models changed only in
    their doc comments: the unit fields now name the World field they are measured in. In presentation.json,
    Zone's icon is now pentagon and Marker's polyline, and the World Browser draws both.
  • The World Browser reads like an editor list: the types in alphabetical order, each with its icon in its
    family's colour and its count; selectable rows with a hover state in place of button columns; the element's
    name, type, supertype and subtype as a header; and a link field shows the linked element's name, which opens
    it. A link resolves to any element the window has loaded, which, with the world loaded on connect, is every
    element; an id outside the world stays an id. The family legend is gone: the colours stay, the grouping is not shown. The 22 icons are Google's Material
    Symbols (Apache 2.0, licence in Editor/Icons/), rendered by tools/render_type_icons.py from the names in
    ow-presentation.json.
  • The READMEs open with a first run that needs no account: the demo key 0000000001 reads Moppetopia. Agent seats
    lead for writes. The account token is no longer offered to the client.