Releases: Orange-Panda/Rewired-Glyphs
Releases · Orange-Panda/Rewired-Glyphs
2.2.0
❇️ 2.0 Upgrade Notice ❇️
If you are upgrading to this version from a 1.X
release please refer to the upgrade guide on the 2.0.0 release page for steps required to upgrade.
Changed
- Rewrote internal code that used C# 9.0 features, which was preventing package use in Unity 2020.3. (GH-16)
- Declared Unity 2020.3 as the minimum required Unity version for this packaged. Earlier Unity releases are not supported by this package.
Fixed
- Fixed internal exception that would sometimes occur when getting joystick glyphs with null controller
2.1.0
❇️ 2.0 Upgrade Notice ❇️
If you are upgrading to this version from a 1.X
release please refer to the upgrade guide on the 2.0.0 release page for steps required to upgrade.
Added
- Added new constructors to
Glyph
that utilize aControllerType
parameter⚠️ Marked the constructors that don't have this parameter as obsolete. They will not be removed until the next major release at earliest.
Changed
- Fallback glyphs now have a
ControllerType
value for the device they were intended to represent- Previously was always
null
- Previously was always
Fixed
- Fixed
hideKBM
functionality not behaving as expected for fallback glyphs
2.0.1
❇️ 2.0 Upgrade Notice ❇️
If you are upgrading to this version from a 1.X
release please refer to the upgrade guide on the 2.0.0 release page for steps required to upgrade.
Fixed
- Fixed an issue where incorrect glyphs may have been shown if there were multiple controllers of different types plugged in
- Example: If a first controller 'A' is an
Xbox One
controller and a controller 'B' is aDualSense
controller, controller B would sometimes show incorrect glyphs.
- Example: If a first controller 'A' is an
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
v1.5.0
Added
- Added
Specific
methods toInputGlyphs
that enable getting joystick symbols of a specific type regardless of the value ofInputGlyphs.PreferredSymbols
- These methods are generally not recommended unless you need to explicitly show that symbol while
InputGlyphs.PreferredSymbols
has a differing value
- These methods are generally not recommended unless you need to explicitly show that symbol while
GlyphRichTextFormatter
now supports specifier syntax for additional arguments such aspole=Positive
,player=2
, ortype=Joystick
GlyphRichTextFormatter
now supports specifying the controller type for the glyph such astype=Keyboard
,type=Mouse
, ortype=Joystick
- Caution: Specifying controller type is more prone to showing
UNBOUND
glyph since it will not fall back to any other type if there is no glyph for that controller
- Caution: Specifying controller type is more prone to showing
GlyphRichTextFormatter
now supports specifying the symbol for the glyph such assymbol=Auto
,symbol=Xbox
,symbol=PS
, orsymbol=Switch
Changed
⚠️ [Breaking] - Editor scripts have been moved from theLMirman.RewiredGlyphs
namespace toLMirman.RewiredGlyphs.Editor
namespace.- Despite not being backward compatible, this change won't be incrementing the major version since the affected types don't have any practical public API functionality.
Full Changelog: v1.4.0...v1.5.0
v1.4.0
Added
- Added
GlyphType
,IsFallbackGlyph
andIsInputGlyph
properties toGlyph
- Allows for checking if a Glyph is intended to represent a
Null
,Unbound
, orUninitialized
glyph through code.
- Allows for checking if a Glyph is intended to represent a
- Added
forceAxis
parameter toInputGlyphs
GetGlyph methods- When true, will get the glyph for the entire axis such as "Move Horizontal" instead of "Move Left" and "Move Right"
- Defaults to false, providing a similar behavior to before
GlyphRichTextFormatter
can output the full axis with the "Full Axis" parameter. Example:<glyph "Move Horizontal" Full>
- Added improved documentation to
InputGlyphs
GetGlyph methods - Added
GetGlyph
method toInputGlyphs
which uses a ControllerType parameter to map to the other specific GetGlyph methods
Changed
- Getting glyphs for button or split elements for an axis action is now significantly more reliable
- Previously getting positive/negative actions such as "Move Horizontal" for joysticks would return the unbound glyph despite a full axis map to the entire horizontal joystick
- Now InputGlyph will infer the Joystick Left and Joystick Right from the full axis map.
Fixed
- Fixed
Glyph.GetDescription()
returning a null string in rare cases - Fixed exception in
GlyphRichTextFormatter
when providing a null string toSetFormattedText(string)
method - Fixed no controller being recognized until it inputs at least once
- Now defaults to the first joystick if the player has not yet input using a controller yet, ensuring there is some glyph shown initially
v1.3.0
Added
- Added
useSpritesWhenAvailable
field toGlyphRichTextFormatter
.- When
true
will replace glyph rich text with a TMP inline sprite if there is a Sprite available for the found glyph. - When
false
will always use the Glyph's description even if it has a sprite. - Defaults to
true
which matches the behaviour of previous implementation
- When
- Added
descriptionFormat
field toGlyphRichTextFormatter
which controls the way descriptions are output.- Defaults to
[{0}]
which matches the behaviour of previous implementation
- Defaults to
- Added
formatTextOnStart
field toGlyphRichTextFormatter
- Defaults to
true
which matches the behaviour of previous implementation
- Defaults to
Fixed
- Fixed
GlyphRichTextFormatter
not having up to date glyphs if component was not enabled during glyph rebuild.
v1.2.0
Added
- Added descriptions for
Positive
andNegative
axis range on Glyph- If you have created custom components you are encouraged to use
GetDescription()
instead of the now obsoleteDescription
- If you have created custom components you are encouraged to use
- Added a brand new
Glyph Map
Editor- Quickly generate a glyph map based on your project's Rewired controller maps
- Validate glyph values against the expected definitions from your project's
Controller Data Files
asset
- Added
GetKeyboardGlyph
andGetMouseGlyph
functions to theInputGlyphs
class - Exposed previously private methods
GetNativeGlyphFromGuidMap
,GetNativeGlyphFromHardwareMap
, andGetNativeGlyphFromTemplateMap
inInputGlyphs
class- These methods are not recommended in most cases, but may be useful if you need tight control over glyph output.
v1.1.0
Added
- Added support for inserting new glyph definitions to glyph map in editor
Fixed
- Fixed incorrect Dualsense and Dualshock 4 glyph map in package sample
- Requires reimporting sample to fix
- Fixed some calls being made to Rewired when it is not active
- Fixed glyph system cache referencing null players when input manager is quit or restarted
- Fixed glyph display never initializing action id if Reinput system was not ready on Awake
- Fixed rebuilds sometimes not occurring on later glyph displays if an exception occurred in an earlier glyph display
v1.0.1
Fixed
- Fixed
Rewired Glyph Manager
not marking glyph maps and collection dirty when generating TextMeshPro sprite sheets