Skip to content

Release 2.2.0 - #36

Merged
CoderGamester merged 13 commits into
masterfrom
develop
Oct 17, 2026
Merged

CoderGamester merged 13 commits into
masterfrom
develop

Conversation

@CoderGamester

Copy link
Copy Markdown
Owner

New:

  • Data storage backends: DataService now persists through a pluggable IDataStorage (HasKey, Read, Write, Delete by string key). new DataService() keeps using PlayerPrefs through the new PlayerPrefsDataStorage, so existing saves load unchanged.
  • File saves: FileDataStorage stores each type as a {key}.json file in Application.persistentDataPath or a directory you choose. Every write goes to a temporary file that then replaces the previous one, so an interrupted save keeps the last complete value.
  • WebGL saves: BrowserLocalDataStorage stores data in the browser's localStorage, which is keyed by page origin and survives new uploads on hosts that change the build path every upload, unlike PlayerPrefs and persistentDataPath on WebGL. Writes are synchronous; it throws in the Editor and on other platforms instead of silently storing nothing.
  • Key prefix: new DataService(storage, keyPrefix) stores each type under {keyPrefix}.{typeof(T).Name}, so separate profiles or modes keep separate saves. Without a prefix, keys stay typeof(T).Name.

Changed:

  • The Services Explorer Data tab checks and deletes saved values through the bound service's storage instead of always using PlayerPrefs.
  • Lowered the declared Unity minimum from 6000.3 to 6000.0 and documented 6000.0.x, 6000.3.x, and 6000.5.x as compatibility reference streams.

Fixed:

  • The AssetResolver sample now assigns default actions to the Input System UI module it adds at runtime, so its buttons respond to input instead of looking interactive and receiving nothing.

Docs:

  • The install instructions now list UniTask as an explicit Git dependency, because Unity does not resolve Git dependencies transitively.

CoderGamester and others added 12 commits August 5, 2026 01:27
The sample added an InputSystemUIInputModule without AssignDefaultActions(), so its buttons looked interactive, received nothing, and emitted no error — a failure that survives a green compile, a green test run, and a screenshot. Its sibling sample already chains the call. The shared block now says the harness already prints the fixture count, that the post-fix observation is one re-run of the same probe, and that correcting an existing ADMIT or RCR line is itself a claim about production which must be read and re-checked. Edited identically in all six packages; Tools/lint-agent-guides.py fails if they diverge.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…lCase

AGENTS.md gives private fields _camelCase, says explicitly that static fields are included, and gives private constants plain PascalCase, but nothing enforced it: this repository has no .editorconfig and the style audit gated documentation and ordering only. A hand-rolled checker in an earlier session mis-classified three of its four hits, which is what a rule with no mechanical owner costs. Renames are identifier-only; no comment prose and no string literal changed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…rvice

DataService now persists through IDataStorage. PlayerPrefsDataStorage stays
the default, so existing saves keep loading under typeof(T).Name.

- FileDataStorage writes {key}.json through a temp file and File.Replace so
  an interrupted save keeps the previous value.
- BrowserLocalDataStorage uses localStorage through a WebGL-only jslib; it
  throws PlatformNotSupportedException outside a WebGL player and
  InvalidOperationException when the browser blocks storage.
- An optional key prefix stores data under {prefix}.{typeof(T).Name}.
- The Services Explorer Data tab reads and deletes through the bound
  service's storage.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… fix

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@CoderGamester CoderGamester self-assigned this Oct 17, 2026
…eir own files

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@CoderGamester
CoderGamester merged commit 12af946 into master Oct 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant