All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Implemented the ability to use the MenuHandler as a singleton through the use of the 'VULPES_MENUS_SINGLETON' scripting define.
- Added MenuStackSnapshot to allow for caching and restoring of particular screen stack states.
- Wrapped OnValidate in editor only tags for MenuHandler and MenuWidget_Slider.
- Updated Transitions Package dependency from 1.0.3 to 1.0.4.
- Simplified a lot of interfaces by removing redundant methods and properties.
- Most classes now have the 'DisallowMultipleComponent' attribute.
- Cleaned up some of the code to make things more concise.
- For 'MenuScreens' the 'TransitionIn' and 'TransitionOut' now take a 'MenuScreenTransitionContext' as an argument instead of a boolean value.
- The 'MenuHandler' no longer requires a 'CanvasGroup' component and instead requires a 'Canvas' component.
- On the 'MenuHandler', the 'Visible' property now directly toggles the 'Canvas' component on and off rather than awkwardly setting the alpha value of the 'CanvasGroup'.
- Removed 'MenuTooltip' logic from 'MenuHandler', that logic is now included in an optional 'MenuTooltipHandler' component which should be added to the same object as the 'MenuHandler' if you are using the 'MenuTooltip' as part of your menus.
- 'MenuHandler' no longer manages 'EventSystem' selections.
- Moved 'Raycast' method from 'MenuHandler' to new optional component 'MenuRaycaster'.
- Separated screen stack logic from 'IMenuHandler' into new 'IMenuStack' interface.
- Renamed 'MenuTooltipDetails' to 'MenuTooltipContent'.
- Updated Transitions Package dependency from 1.0.2 to 1.0.3.
- 'MenuModal' and 'MenuLoading' can no longer be assigned as the MenuHandler's initial screen.
- Fixed issue where 'null' could incorrectly be pushed to the screen stack, potentially causing a Null Reference Exception, attempting to push 'null' will now return a rejected Promise.
- Added 'MenuScreenTransitionContext' struct.
- Added 'MenuWidget_Toggle' class.
- Added 'MenuRaycaster' class.
- Added 'MenuTooltipHandler' class.
- Added 'IMenuStack' interface.
- Added 'IMenuTooltipProvider' interface.
- Added new Menu Sample assets.
- Added Documentation.
- Changed Unity Version from 2021.3.6f1 to 2021.3.0f1.
- Updated Promises Package dependency from 2.0.0 to 2.1.1.
- Updated Transitions Package dependency from 1.0.0 to 1.0.2.
- Updated Unity Version from 2021.2.0f1 to 2021.3.6f1
- Updated Text Mesh Pro version from 2.0.1 to 3.0.6 due to a GitHub security warning regarding the package.
- Updated Promises Package dependency from 1.1.0 to 2.0.0.
- Renamed 'IMenuDialogue' and 'MenuDialogue' to 'IMenuModal' and 'MenuModal' respectively.
- Renamed 'MenuHandler.Dialogue' to 'MenuHandler.Modal'.
- Removed 'MenuTransition' classes and moved them into their own package 'com.vulpes.transitions'.
- Added 'com.vulpes.transitions' as a package dependency.
- Other updates preparing package for 1.0.0 release.
- Stripped down MenuLoading class.
- Removed Loading Screen Tip class.
- MenuWidget value changed and click events are now UnityEvents rather than Action based events.
- Updated Example Assets.
- Changed default MenuTransitionOption to Sequential, was Parallel.
- MenuHandler will now correctly get Alert, Dialogue, and Tooltip using their relevant interfaces rather than base classes.
- MenuHandler now includes an interface reference to the Loading Screen.
- Loading Screen spinner now uses unscaled deltatime in its rotation.
- Add Unity Input System Package as a dependency.
- Added Menu Tooltip and Tooltip Details classes support when Mouse Input is in use.
- Fixed typo in Read Me file.
- Made loading screen tip body text a multiline text area.
- Cleaned up code.
- Removed readonly 'in' modifier from nullable arguments.
- Rolled forward minimum Unity version to 2019.3.10f1.
- Cleaned up code.
- Simplified Menu Transition delay option.
- Implemented 'in' keyword for readonly arguments.
- Default Menu Transition curves are now linear.
- Removed 'Reset On Initialize', 'Reset On Play', and 'Disable When Done' options from Menu Transitions and replaced them with 'Flags'.
- Merged Sample Packages into one.
- Added ability to set the transitioned in 'interactable' and 'blocksRaycast' states for MenuTransition_CanvasGroupAlpha.
- Fixed a bug where MenuScreens that didn't use a MenuTransition component couldn't be interacted with after transitioning in.
- Resolved issue where changing Slider and Enumerable values wouldn't reselect the MenuWidget.
- Updated Examples.
- Added more cref tags to method and class summaries.
- Added cref tags to method and class summaries.
- Unsealed MenuHandler, MenuAlert, MenuDialogue, MenuLoading, and MenuLoadingTip classes.
- Moved MenuWidgets out of the Experimental namespace.
- Made Start and End values of MenuTransition virtual so that they can be overridden.
- Fixed issue with MenuTransition_AnchoredPosition where changing the Start and End values at runtime would have no effect.
- Changed default value of MenuTransitionMode to Reverse, was Forward. This should resolve an issue where some menus wouldn't transition in correctly.
- MenuDialogue can no longer be shown if a MenuDialogue is already being shown. This is a temporary fix to prevent softlocking.
- Added IsCurrentScreen value to MenuScreen.
- Fixed an issue with Position, Euler Angles, and Scale MenuTransitions where they were lerping as Vector2s instead of Vector3s.
- Fixed issue when pushing screen with uninitialised screen stack.
- Added initial screen option to Menu Handler, this screen will automatically be pushed at startup if assigned.
- Updated some method summaries.
- MenuScreens now include an option to remember the last selected item prior to transitioning out.
- Added MenuDialogue and MenuAlert Sample Prefabs.
- Cleaned up some of the MenuWidget code following further testing.
- Added MenuWidget example Prefabs.
- Added more sample sptites.
- Added MenuLoading screen class.
- Added MenuLoadingTip scriptable object class.
- Added MenuWidget class that extends MenuWidget (see changes for more information).
- MenuWidget now contains the following events: OnSelectEvent, OnPointerEnterEvent, OnPointerClickEvent, OnSubmitEvent.
- MenuWidget now includes the OnValueChanged event that was previously included in the MenuWidget class.
- Widget headers are no longer forced to upper case.
- Split MenuWidget into two classes and genericised some of the Value functionality.
- MenuWidget_Enumerable now uses MenuWidget as a base component.
- MenuWidget_Slider now uses MenuWidget as a base component.
- MenuWidget_Dropdown now uses MenuWidget as a base component.
- MenuWidget_InputField now uses MenuWidget as a base component.
- MenuWidget no longer contains an OnValueChanged method, this has been moved to the MenuWidget class.
This is the first release of Vulpes Menu Framework as a Package.