Change Log
Version 2.5
- Features:
- New Control - Better Offsetter: replaces the "Size Delta Sizer" and allows to change the anchored position in addition to the size delta (with responsive design options)
- New Control - Value Dragger: Allows to press an element while dragging to change a value. Similar to a Slider but without a knob.
- Better Toggle - There are now individual transitions for selection states when the toggle is on as well as transitions for when it is off.
- Better Content Size Fitter - can be treated as layout element (Handy when it should be part of a layout group)
- Color Transitions - Can now also target secondary color (for gradients) and overwrites colors instead of mixing them (optional for main color).
- Anchor Override - Update Modes introduced, to not update positions every frame. Also exposed the target to allow changing it via code.
- Snap Anchors Window - There is a button now to stretch the element to the size of the parent and move the anchors to the border (like a panel).
- Improvements:
- Almost all Better Components - Implemented properties with same name as base-class-properties which makes it easier to apply certain values via code.
- Transitions - List of transitions is now rendered as a reorderable list (using rotorz implementation). Custom code can now also mark a List<Transition> with a TransitionStatesAttribute or a DefaultTransitionStatesAttribute.
- Better Input Field / Better TextMesh Pro Input Field - Additional Placeholders using a reorderable list as well now.
- Better Locator - Auto Pull & Auto Push state persists for a session (when you disable Auto Pull, it will not be enabled automatically when you (re)select a Better Locator)
- Better Locator - If the current screen configuration is not defined, Live update options are disabled. This prevents changing transform data for the wrong config accidentally.
- Screen Config Collections - Button to add the current screen config if it is not present.
- Size Modifiers - Min Size and Max Size are optional now and off by default
- Size Modifiers - There is a warning if the Canvas Scaler is not "Constant Pixel Size" and Size Modifications are registered. There are also two options to fix it easily.
- Materials - Each predefined material has it's own helper class now to easily access their name ids and parameter indices via code.
- Smart Parent Window - Snap button ignores inactive objects.
- Size Change Tracker - Performance improved a lot. This required a re-design of the component.
- Fixes:
- Better Image - Can correctly handle sprites that are set to "Tight" now.
- Better Image - Can correctly scale borders of sliced sprites in a Texture Atlas which are set to "Tight" now.
- Better Image - "PixelPerUnit" multiplier can be used now (also in combination with Better UI's sizing options).
- Better Image - "Use Sprite Mesh" option is disabled as it is not supported for the better version of images (because gradients would be hard to implement and would likely have artifacts)
- Better Image (and potentially others) - Settings were not copied correctly leading to empty sprites and transparent black color for newly added settings configs.
- Better Toggle - doesn't subscribe to onValueChange event anymore, so RemoveAllListeners() doesn't kill better transitions anymore.
- Snap Anchors Window - also works with rotated canvases / parents now.
- Location Animations - did not work when chaining animations through "Action After Finish" event
- Better Locator - disabled objects don't overwrite location data anymore.
- Screen Config Collections - When a screen config was added, the list of configs was not sorted correctly. This could lead to the selection of the wrong config (e.g. If there is "Landscape" and then "Landscape Large", "Landscape" was chosen even if the current Screen config was detected as "Landscape Large" - so the order in the resolution monitor was not matched).
- Transitions - Instantly apply material property transitions if object is not active (avoids coroutine errors)
- Materials - NullReferenceException fixed when trying to set a material via code while Materials-Singleton is about to create its instance.
- ResolutionMonitor - Fixed compile error in Unity 2021.2+.
- Pick Resolution Window - Also works with Unity 2022 now.
- Pick Resolution Window - Scene View updates more reliably when resolution is changed.
Breaking Changes:
- Feature: Better Content Size Fitter - can be treated as layout element (Handy when it should be part of a layout group)
- In most cases this doesn't change anything when updating. In rare cases it needs to be turned off to prevent wrong sizes.
- Impovement: Size Change Tracker - Performance improved a lot. This required a re-design of the component.
- It now requires a component that implements ILayoutElement. This is usually the case, but if not, an update will break the tracker.
- Improvement: Size Modifications - Min Size and Max Size are optional now and off by default
- In most cases you don't want a min or max size. However, if you have UI Elements that require it, you will need to manually enable it after updating.
- Fix: Screen Config Collections - When a screen config was added, the list of configs was not sorted correctly. This could lead to the selection of the wrong config (e.g. If there is "Landscape" and then "Landscape Large", "Landscape" was chosen even if the current Screen config was detected as "Landscape Large" - so the order in the resolution monitor was not matched).
- If you rely on the wrong ordering, this might be problematic. While the existing entries will not be reordered automatically, they will as soon as another config is added. Also, new components with screen configs will have the correct sorting now.
Version 2.4
- Features:
- A setup wizard helps configuring Better UI correctly. It automatically opens after importing the package.
- Smart Parent Tool: Allows to move a UI element without moving its childs along with it. Also option to fit the parent to the bounds of its childs.
- AnchorOverride Component has options for animations (move to override-settings over time)
- Plugin for WebGL to be able to retrieve the correct DPI in the browser (workaround for a bug in unity)
- Example Scenes:
- AnchorOverride Animation Example scene
- Resolution Tracking Example scene (to prove WebGL DPI fix)
- Custom Screen Tag Example
- Small Changes:
- Improved Snap Anchors tool UI and added option to set the pivot point
- AnchorOverride: some public variable / method for code access provided
- Option to install assembly definition files for Better UI
- IngameResolutionMonitor can be added safely into a scene without the need to call Create() now.
- LocationAnimations: OnUpdating event is added to the animations to allow custom animations along with the location animation
- Help Links in all Better UI MonoBehaviors and Scriptable Objects added
- Exposed options of some UGUI controls from newer versions of unity in better versions of the controls
- Fixes:
- Location Animations: "Use Relative Locations" didn't work with [ Any Location ]
- NullReferenceException when adding a Better Locator fixed
- Making a LayoutElement better remembers the previously made settings now
- Prevention of warnings in the console
- fixes in some pre-defined materials
- fixed compile error which appeared in newer versions of unity in ResolutionMonitor
Version 2.3
- Features
- Location Animations: "Use Relative Locations" toggle allows to define locations relative to the location they have when loaded.
This allows to design animations regardless of their final positions (and reuse them: like several of the same button at different places) - Screen Configs: Users can now define custom Tags for checking screen configurations. These can be triggered through code like this:
- TheraBytes.BetterUi.ResolutionMonitor.AddScreenTag("Accessibility_Mode");
- TheraBytes.BetterUi.ResolutionMonitor.RemoveScreenTag("Accessibility_Mode");
- TheraBytes.BetterUi.ResolutionMonitor.ClearScreenTags();
- Better Image / Better Raw Image: Some settings (Better Image: Sprite + Color options / Better Raw Image: Texture + Color options + UV Rect) can now be changed per screen configuration.
This can be useful if you want to display different images per screen configuration tag (like the logo of the current OS) or if you want to use different gradient directions per orientation. - Transitions: The new Transition mode "Custom Callback" allows to call a method or change the value of a variable when the transition state changes.
- Grayscale Material now has an "Amount" property which allows to interpolate between color and grayscale.
- Axis Aligned Layout Group: Added Support for "Use Child Scale" (Unity 2019+) and "Reverse Arrangement" (Unity 2020+)
- Better Scroll Rect: There are now sizers for horizontal / vertical scrollbar spacing (if visibility is set to AutoHideAndExpandViewport)
- Minor Changes
- Suppressed irrelevant warnings in the console
- Added Multi-Component-Editing Capabilities to Better Components (except Location Animations)
Note: this may not work as expected on all components, like TextMesh Pro (only showing the Better UI part) - Unscaled time is now used everywhere in Better UI (UI should usually not be affected by time scale)
- Bug Fixes
- Fixed Update logic when Better UI elements are disabled
- Fixed Fallback Screen Config changes (values reset previously)
- Fixed Anchor Override for Canvases with Camera
- Fixed DPI Override list: possible to add / remove entries again
- Fixed NaN Bug in Anchor Override (was causing disappearing elements)
Version 2.2
- Minor Changes
- SerializedPropertyExtensions allowing also ScriptableObjects now instead of Components only, so they can be used by the end-user in more flexible ways now.
- Anchor Override, Size Delta Sizer and Transform Scaler disable affected properties in RectTransform now.
- Resolution Picker Editor-UI improvements
- Bug Fixes
- Resolution Picker can create resolutions of screen configurations now also in Unity 2017.3+.
- Game Window doesn't recreate itself anymore.
- Game Window is not focused after re-compile anymore if Resolution Picker is open.
- Better Locator "Auto Pull" also work in Prefab Scene now.
- Anchor Override also work correctly now if the pivot of the parent object is being changed.
- Anchor Override updating logic fixed.
- Anchor Override doesn't throw NullReferenceExceptions in certain situations anymore.
Version 2.1
- Features
- Custom static methods can be defined to calculate size changes for UI element variables
- Introduced "Anchor Override" to snap the anchors of an object to another object
- Introduced "Location Animations" to easily animate UI elements
- These Location Animations can be used in Better Transitions
- Introduced "Override Screen Properties" to control sizing through sub-areas of the screen
- Introduced "Interaction Area" which allows to define clickable zones without visual representation
- Added "GhostExampleScene" to show the new components
- Minor changes
- not found screen configs are marked in the inspector
- Improved Resolution Monitor Inspector
- Added Upgrade button for transitions in Unity 2019+
- Changed TextMesh Pro inspector to have less trouble with different versions of Unity and TextMesh Pro
- Bug Fixes
- Screen Configs where not evaluated on start of a build (responsive design didn't work without IngameResolutionMonitor)
- Color Transitions had a color multiplier of 0 instead of 1 after upgrading from Better UI 1.x
Version 2.0
(Major version change because of huge changes and additional upgrade steps)
- Responsive Design: Design your app for different screen sizes, types and / or orientations!
- Screen Configurations introduced to define supported screens
- All controls updated to support all screen configurations
- "Better Locator" introduced to place elements differently on different screens
- Better Layouts: All layout components have "better" versions now
- Especially the "Better Content Size Fitter" has a lot of extra functionality.
- Tools UI improvements
- Color Overlay material for "Better (Raw) Image".
- A lot of smaller improvements and fixes
Version 1.2
- Better Raw Image added with Gradient and Material options like in Better Image
- Align and Distribute Window added
- Snap Anchors Window: Bugfix regarding point and pivot mode with parent checkbox enabled
- minor refactoring
Version 1.1.2
- Animation of shader properties stored in vertex information more intuitive (Hue, Saturation, Brightness -- compatible with animations of version 1.1)
- Added some predefined Blending Effects to all Better UI shaders: Normal, Additive, Color Dodge, Multiply
- Added a "Standard" Material which is like the Default material but can have assigned an Effect (see above)
- Added a Transition for shader properties stored in vertex information (Hue, Saturation, Brightness)
(version 1.1.1 was not released)
Version 1.1
- Text Mesh Pro support! (Text, InputField and Dropdown)
- Gradients for Images (Horizonal and vertical. interpolates between 2 colors)
- Material System for Images with two performance optimized Materials:
- Grayscale
- Hue Saturation Brightness (Shared Material between all images but values can be set individually)
- Custom Materials for Images can be cloned inside the inspector (no need to make a copy in the project window)
- Minimum Unity version is 5.4 now (it was Unity 5.5 before). However, it compiles also for Unity 5.3 and probably most features also work there.
- Default Scaler Size modifiers changed to scale uniform
- Toggle Transition logic improved to work better with normal transitions on the same object
- Fixes in anchor positioning logic of Snap Anchors window
- Snap Anchors window has buttons with pictures now
- Warnings eliminated
- General refactoring of the code base
Version 1.0
Initial release