2.0.0
❇️ Upgrade Guide ❇️
This release includes major breaking changes which will require your attention in order to upgrade to this version from any 1.x
release
GlyphCollection
has been overhauled. For eachGlyphCollection
in your project you must reassign the hardware maps to the newly designated 'Controller Maps'- If you are using one of the
GlyphCollection
samples you are encouraged to reimport the updated2.x
sample instead.
- If you are using one of the
- If referenced
HardwareDefinition
in any of your scripts, they must be replaced/removed- Use
Controller
orControllerType, Guid
instead. - This affects
GetNativeGlyphFromGuidMap
method calls in particular
- Use
⚠️ Major Breaking Change - Hardware Definition Removed ⚠️
Hardware Definition
has been completely removed for more accurate glyph queries and an improved user experience when creatingGlyphCollection
- Most methods that were directly associated with
HardwareDefinition
have been removed entirely. - Methods that used
HardwareDefinition
to target a specific controller now useController
orControllerType, Guid
instead.- The signature for some query methods have changed as a result such as
GetNativeGlyphFromGuidMap
- The signature for some query methods have changed as a result such as
⚠️ You will have to update your1.x
GlyphCollection
when updating to v2.0.0 by reassigning your controller glyph maps to the collection!- If you used any methods that used
HardwareDefinition
your code will not compile when upgrading to this version and will require changes.
Added
- Added official
Documentation~
which can also be found online at https://orange-panda.github.io/Rewired-Glyphs/- This is an ongoing project, so you are encouraged to make article requests in the Issues
or Discussions if you are unable to find documentation for your use case.
- This is an ongoing project, so you are encouraged to make article requests in the Issues
- Added an overhauled
GlyphCollection
editor user experience - Added
ControllerType
property toGlyph
to inform components about the device the glyph intends to represent.- All Template maps represent
Joystick
glyphs - Controller maps use the value defined in its entry on the
GlyphCollection
- All Template maps represent
- Added optional feature for hiding non-input glyphs (null, uninitialized, etc.) on built-in components (default does not hide)
- Enable in
GlyphRichTextFormatter
usinghideInvalid
option in glyph tag (Example:<glyph Jump hideInvalid>
)
- Enable in
- Added optional feature for hiding keyboard and mouse glyphs in built-in components (default does not hide)
- Enable in
GlyphRichTextFormatter
usinghideKBM
option in glyph tag (Example:<glyph Jump hideKBM>
)
- Enable in
- Added
ShouldHideGlyph(Glyph)
protected method toGlyphDisplay
which can be used by inheritors to inform if they should hide the output glyph (due to the above rules)- If you don't implement this check in your
SetGlyph
component it will behave identically to before, but will not support these optional settings.
- If you don't implement this check in your
- Added
GetGlyphSet
method toInputGlyphs
for getting all glyphs for an action across all controller types, including multiple bindings on a single controller. - Added
collectionKey
string field toGlyphCollection
for distinctly identifying and referencing collections at runtime ⚠️ [Breaking] - AddedcollectionKey
optional parameter to allInputGlyphs
methods for referencing secondary (non-default) collections- Added
additionalCollections
field toRewiredGlyphManager
for additively loading additional collection for reference by theircollectionKey
- This field also supports generating TMP sprite sheets (generates for default collection and collections included in additional collections)
- Note: Make sure the names of the sprite sheets containing glyphs are unique since they are referenced by name in TextMeshPro. An error message has been added to notify about such collisions.
- Added optional specifier
set=collectionname
forGlyphRichTextFormatter
to target secondary glyph collections- Example:
<glyph Jump set=dark>
where 'dark' is thecollectionKey
on someGlyphCollection
that is loaded into InputGlyphs
- Example:
- Added
Generate Keyboard
andGenerate Mouse
functionality toGlyph Map
for generating default Glyph Map actions- Requires the application running due to technical limitations
- Added component icons to all major components and scriptable objects of the package
- Icons sourced from Google Icons
- Added confirmation dialogue before generating TMP sprite sheet on Rewired Glyph Manager
- Added custom property drawer for
Glyph
, improving the editor experience - Added new glyphs sample to package: Xelu Prompts
Changed
- Changed order of sprites in Glyph editor (now ordered Full, Positive, Negative to match description order)
- Rewrote the way glyph collections are loaded into memory internally
- Switching the active glyph collection is now much more performant
- Loading a glyph collection now only dispatches a glyph update if it may have changed the output of glyph queries
GlyphCollection
now initializes non-input glyph values with default values when created.- Remove set access to
TemplateEntry
andGuidEntry
- Updated
Kenney
sample glyphs to newGlyphCollection
format
Fixed
⚠️ [Breaking] - FixedGetSpecificCurrentGlyph
andGetCurrentGlyph
not utilizing the value of its 'forceAxis' parameter.- If you were utilizing a value of
true
you may notice different output of this method. - This method was being used by
GlyphRichTextFormatter
therefore tags such as<glyph "MoveH" pole=FullAxis>
will output differently.
- If you were utilizing a value of
- Fixed Glyph
Positive
andNegative
description sometimes not returning the expected value - Fixed description validation error in
GlyphMapEditor
- Fixed
Kenney
glyph maps having some inaccurate/missing actions
GitHub Tag Change
- Going forward releases will no longer have the
v
prefix- Tags for previous releases will not be modified
Full Changelog: v1.5.0...2.0.0