title: Why does my TMP's face color update only at 50% and 150%?
body: <p>Ello,
  I am currently working on a mechanic for a local multiplayer roguelike where the closer the players are to each other the more damage they do. So far I've gotten multipliers to work and change damage statistics but I cant get my % text to update as the total multiplier does. In its current state, the text mesh pros face color updates at only 50% and 150% when it should do it every frame. Any ideas as to why is this is or any potential fixes?</p>
  <p>Thanks</p>
  <p><strong>Statistics</strong> (For totalMultiplier)</p>
  <pre><code>using System.Collections;
  using System.Collections.Generic;
  using UnityEngine;
  
  public class Stats : MonoBehaviour
  {
      public GameObject midpoint;
      public float baseDamage;
      [SerializeField] private float damage;
      [SerializeField] private float multiplier = 1;
      public float totalMultiplier;
      private float distMulti;
      // Start is called before the first frame update
      void Start()
      {
          multiplier = 1;
      }
  
      // Update is called once per frame
      void Update()
      {
          //actual multiplier
          damage = (baseDamage * multiplier) / (midpoint.GetComponent&lt;Midpoint&gt;().distance * 0.5f);
          if (damage &gt;= (baseDamage * multiplier * 2))
          {
              damage = (baseDamage * multiplier * 2);
          }
          //Keep track of multiplier
          totalMultiplier = damage / baseDamage;
      }
  }
  
  </code></pre>
  <p><strong>Text Tracker / Color Changer</strong> (Edits the TMPs shader with setting faceColor)</p>
  <pre><code>using System.Collections;
  using System.Collections.Generic;
  using UnityEngine;
  using TMPro;
  
  public class TextTracker : MonoBehaviour
  {
      public GameObject player;
      private TextMeshPro text;
      private Color redAmount = Color.red;
      // Start is called before the first frame update
      void Start()
      {
          text = GetComponent&lt;TextMeshPro&gt;();
  
      }
  
      // Update is called once per frame
      void Update()
      {
          text.SetText(System.Math.Round((player.GetComponent&lt;Stats&gt;().totalMultiplier)* 100, 0).ToString() + &quot;%&quot;);
          transform.position = new Vector2(player.transform.position.x, player.transform.position.y + 1);
          Shader color = text.material.shader;
  
          text.faceColor = new Color(1f, 1f - (float)System.Math.Round(player.GetComponent&lt;Stats&gt;().totalMultiplier) / 2, 1f - (float)System.Math.Round(player.GetComponent&lt;Stats&gt;().totalMultiplier) / 2, 1f);
  
      }
  }
  </code></pre>