This page looks best with JavaScript enabled

ReIconed for Rewired is (not) forgotten and needs updating

 ·  ☕ 4 min read

Disclaimer. The asset is NOT broken, it was my inattentiveness that led to a waste of time. But still there is something to learn out of this, so I will keep the post, at least for now, and complement it with a bit of negative points and positive ones.

ReIconed for ReWired as the name hints is an addon for Rewired, a must-have asset for handling input (there are alternatives, but…).

The TMP Sprite Asset (my version of TextMesh Pro is 3.0.1) has a different format with separate Sprite Character Table and Sprite Glyph Table.
And the version of ReIconed does NOT take it into account, all Glyph ID are set to 0, and pointing to “Esc” glyph.

Changes in TMP_Sprite Asset

It took awfully a lot of time to investigate, particularly because it is impossible to find the discord mentioned by the author of ReIconed in another review, and the support site does NOT have anything related to ReIconed.

The asset is described as a time saver when in reality it can waste a lot of time just to find out how to make it work.

The fix is actually an easy one:
1a. Select NullSave/ReIconed for Rewired/TextMesh Pro/Sprites/desktop
2a. In Sprite Character Table for every required character set “Glyph ID” equal to “Index”.

1b. Repeat the same changes for NullSave/ReIconed for Rewired/TextMesh Pro/Sprites/controllers
2b. See 2a.

Maybe later I will automate the fix, but for now it is enough just to know that the fix exists.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// ps. The fast and dirty script to fix looks like this:
public static void Main(string[] args)
{
    int i = 0;

    // var fileName = "../../controllers.asset";
    var fileName = "../../desktop.asset";
    
    using (var input = File.OpenText(fileName))
    using (var output = new StreamWriter(fileName + ".new"))
    {
        string line;
        while (null != (line = input.ReadLine()))
        {
            if (line.Contains("m_GlyphIndex: 0"))
            {
                line = line.Replace("m_GlyphIndex: 0", "m_GlyphIndex: " + i);
                i++;
                
            }
            
            output.WriteLine(line);
        }
    }
}
  1. This behavior is intended for whatever reasons. The default version of ReIconed supports pre-2019 versions of Unity (and now it’s May of 2021).
  2. How should we learn about the needed upgrade?
    2a. There is an overview page on Unity Asset Store. But there is no information about the needed upgrade.
    2b. The author have a site, which is linked from the store. Again, no information and the asset itself is not mentioned anywhere on the site.
    2c. Some assets after installation show a welcome screen, but… not in this case, there is no welcome screen and thus no information about the essential upgrade.
  1. No link for discord, despite it is mentioned by the author when replying to a different review.
  2. It seems the email is the only obvious way to ask for support, but the site is not obviously connected to the asset (and btw my browsers have consistent problems with the first loading of the site).
After all of these things the author’s phrase about “sharing the uncovered issue” sounds a bit like mockery. Where is your “sharing”?
pppps. One more thing

There is a good opportunity for optimization in the asset’s scripts, i.e. replace Update methods in ReIconed components with event based system. But I’ll leave that for now (maybe until a mobile game).

Share on