Skip to content

Release 1.1.0#25

Merged
CoderGamester merged 38 commits intomasterfrom
develop
Jan 6, 2026
Merged

Release 1.1.0#25
CoderGamester merged 38 commits intomasterfrom
develop

Conversation

@CoderGamester
Copy link
Copy Markdown
Owner

New:

  • Added OpenUiSetAsync(int setId, CancellationToken) method to IUiService for opening all UI presenters in a set with proper address handling, ensuring compatibility with CloseAllUiSet and UnloadUiSet
  • Added OnOpenTransitionCompleted() and OnCloseTransitionCompleted() lifecycle hooks to UiPresenter for reacting after all transition animations/delays complete
  • Added comprehensive test suite:
    • Unit tests for UiAnalytics, UiConfig, UiInstanceId, UiServiceCore, UiSetConfig
    • PlayMode integration tests for multi-instance, loading, open/close, and UI set management
    • Performance and smoke tests
    • Feature-specific tests for AnimationDelayFeature, TimeDelayFeature, and PresenterFeatureBase
  • Added ITransitionFeature interface for features that provide open/close transition delays
  • Added OpenTransitionTask and CloseTransitionTask public properties on UiPresenter for awaiting transition completion externally
  • Added AGENTS.md documentation for AI coding agents
  • Added structured documentation under docs/ folder with separate pages for getting started, core concepts, API reference, advanced topics, and troubleshooting
  • Added multiple new samples to the package library
  • Added multiple IUiAssetLoader implementations to support different asset loading scenarios:
    • AddressablesUiAssetLoader (default): Integration with Unity Addressables.
    • PrefabRegistryUiAssetLoader: Simple loader for direct prefab references (useful for testing and samples).
    • ResourcesUiAssetLoader: Support for loading from Unity's Resources folder.
  • Added AddressablesUiConfigs, ResourcesUiConfigs, PrefabRegistryUiConfigs, ResourcesUiConfigsEditor, AddressablesUiConfigsEditor and PrefabRegistryUiConfigsEditor for managing UI configurations.

Changed:

  • BREAKING: Made UiConfigs class abstract to enforce usage of specialized subclasses (AddressablesUiConfigs, ResourcesUiConfigs, PrefabRegistryUiConfigs) and prevent runtime errors from misconfiguration
  • BREAKING: Removed IPresenterFeature interface; features now extend PresenterFeatureBase directly
  • BREAKING: Renamed UiAssetLoader to AddressablesUiAssetLoader to reflect its specific loading mechanism.
  • BREAKING: Renamed UiConfig.AddressableAddress to UiConfig.Address for loader-agnosticism
  • Changed UiPresenter<T>.Data property to have a public setter that automatically triggers OnSetData() when assigned
  • Refactored TimeDelayFeature and AnimationDelayFeature to no longer call gameObject.SetActive(false) directly; visibility is now controlled solely by UiPresenter
  • Refactored UiPresenter.InternalOpen() and InternalClose() to use internal async processes that await ITransitionFeature tasks
  • Refactored AnimationDelayFeature and TimeDelayFeature to use Presenter.NotifyOpenTransitionCompleted() and Presenter.NotifyCloseTransitionCompleted() instead of internal events
  • Removed OnOpenCompletedEvent and OnCloseCompletedEvent internal events from delay features
  • Updated all samples to use UI buttons instead of input system dependencies for better project compatibility

Fixed:

  • Fixed AnimationDelayFeature animation playback logic - was incorrectly checking !_introAnimationClip instead of _introAnimationClip != null
  • Fixed UiPresenterEditor play-mode buttons to properly call InternalOpen() and InternalClose() instead of just toggling gameObject.SetActive()
  • Fixed delay features to work correctly when tests run together (UniTaskCompletionSource lifecycle)
  • Fixed null checks in delay features using explicit null comparisons instead of null-conditional operators for Unity object compatibility
  • Fixed inconsistent lifecycle where OnOpenTransitionCompleted/OnCloseTransitionCompleted were only called when features existed
  • Fixed split responsibility for visibility control where both UiPresenter and features could call SetActive(false), allowing now to properly close the presenters in all scenarios
  • Fixed LoadUiAsync visibility state inconsistency where calling it on an already-visible presenter with openAfter=false would disable the GameObject but not update VisiblePresenters, causing subsequent OpenUiAsync calls to fail silently
  • Fixed multi-instance ambiguity when calling Close(destroy: true) from within a presenter and now correctly unloads the specific instance instead of potentially unloading the wrong one
  • Fixed UI Toolkit timing issue where element queries in OnInitialized() would fail because the visual tree was not yet attached to a panel

Miguel Cartier and others added 30 commits December 27, 2025 16:02
…operly

docs: update the readme doc to be cleaned
…cumentation and more clarity on the purpose of the package
refactor: Remove the action dependency from the Delay Features
chore: Update the Samples to match the latest updates of the project
… for each of the UiPresenter features:

- TimeDelayFeature behavior
- AnimationDelayFeature behavior
- IPresenterFeature lifecycle
- PresenterFeatureBase
- Feature discovery via GetComponents
…gs. Also removed the dependency from the EditMode tests helpers

chore: cleanup the samples dependency on the different input systems so each project can run independently. Now uses UI buttons
…ersion to 1.1.0

fix: fix all samples GUID files
… features.

fix: DelayedPresenter meta files fixed
…erent asset loading scenarios:

  - `AddressablesUiAssetLoader` (default): Integration with Unity Addressables.
  - `PrefabRegistryUiAssetLoader`: Simple loader for direct prefab references (useful for testing and samples).
  - `ResourcesUiAssetLoader`: Support for loading from Unity's `Resources` folder.
…itor` for managing non-Addressable UI configurations.
…alized subclasses (`AddressablesUiConfigs`, `ResourcesUiConfigs`, `PrefabRegistryUiConfigs`) and prevent runtime errors from misconfiguration

refactor: merged the different scriptable objects for the prefab registry into a single scriptable object
…Presenter` and features could call `SetActive(false)`, allowing now to properly close the presenters in all scenarios

feat: added `ITransitionFeature` interface for features that provide open/close transition delays
feat: added `OpenTransitionTask` and `CloseTransitionTask` public properties on `UiPresenter` for awaiting transition completion externally
…ter that automatically triggers `OnSetData()` when assigned
…IUiService` for opening all UI presenters in a set with proper address handling, ensuring compatibility with `CloseAllUiSet` and `UnloadUiSet`

chore: fix and improving the samples to work as intended
… it on an already-visible presenter with `openAfter=false` would disable the GameObject but not update `VisiblePresenters`, causing subsequent `OpenUiAsync` calls to fail silently

fix: fixed the AssetLoadingStrategies sample
…ync<T>`, `UnloadUi<T>`, `OpenUiAsync<T>`, `CloseUi<T>`) from default interface implementations in `IUiService` to explicit methods on `UiService` for better visibility when using the concrete type

fix: fixed multi-instance ambiguity when calling `Close(destroy: true)` from within a presenter and now correctly unloads the specific instance instead of potentially unloading the wrong one
fix: multiinstance issues fixed
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Jan 6, 2026

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@CoderGamester CoderGamester merged commit 109e036 into master Jan 6, 2026
1 check 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