I get this error while trying to change the alpha value of a guitext:
“Assets/FloatingText.cs(47,34): error CS1612: Cannot modify a value type return value of `UnityEngine.Material.color’. Consider storing the value in a temporary variable”
I did a ton of googling around, and no matter how I try to adapt the things I found I just can’t get it working. The example script this is based on is unfortunately in Javascript, which apparently handles the thing that causes this error a bit different.
public class FloatingText : MonoBehaviour {
private float speed = 0.03f;
private float alpha;
public float guiTime = 5f;
private float duration = 1.5f;
void Start()
{
guiText.material.color = Color.red;
alpha = 1f;
StartCoroutine(GuiDisplayTimer());
}
void Update()
{
//Debug.Log(guiText.material.color.a);
transform.Translate(new Vector3(0f, 2f, 0f) * (speed * Time.deltaTime));
//alpha = guiText.material.color.a; //Tried setting alpha into a temp variable but ain't working
alpha -= Time.deltaTime/duration;
guiText.material.color.a = alpha;
}
IEnumerator GuiDisplayTimer()
{
yield return new WaitForSeconds(guiTime);
Destroy(this.gameObject);
}
}
It must be a very simple thing to do, but every place that advices how to get around this error does it in a way that just seems totally incomprehensible. I have tried so many things with this it’s really frustrating right now. Here’s the script I have based this on : attack damage scrolling - Unity Answers
Thanks in advance.