3.5.0
Added
- Asset change detection loop reset utility: Added
AssetChangeDetectionUtility.ResetLoopProtection()so editor tooling can resume[DetectAssetChanged]dispatch after a recursive callback has tripped loop protection, without requiring a domain reload. - Feel-good randomness helpers: Added
ExactAveragePrd,BadLuckProtection, andWeightedShuffleBag<T>for player-facing randomness that reduces streak frustration while keeping deterministic, testable behavior.ExactAveragePrdsolves the pseudo-random distribution coefficient for a configured long-run average,BadLuckProtectionimplements pity-timer chance ramps and optional hard guarantees, andWeightedShuffleBag<T>emits exact weighted ticket counts before repeating. The helpers expose explicit restore APIs so save/load systems can persist pity/deck state.
Fixed
- Optional Odin Inspector integration without unguarded Odin assemblies:
RuntimeSingleton<T>,ScriptableObjectSingleton<T>, andAttributeEffectnow use Odin serialized base classes only when theodininspectorpackage is installed and the package-ownedWALLSTOP_UNITY_HELPERS_ODIN_INSPECTORdefine is active; otherwise they fall back to Unity base classes. Projects that still define the globalODIN_INSPECTORsymbol without shipping Sirenix assemblies no longer fail package compilation, while Odin projects keep the serialized base behavior automatically.
Install
- Import the attached
.unitypackageinto a Unity project, or - install
com.wallstop-studios.unity-helpers@3.5.0from npm / OpenUPM through Unity Package Manager.
The release includes the npm tarball and the .unitypackage, each with a .sha256 checksum.