trying to add a gradiant to text: Assets/ArcadeScripts/GradiantTextEffect.cs(18,30): error CS0131: The left-hand side of an assignment must be a variable, a property or an indexer
Hi trying to write a gradient script for UI-text cause dropping 75+ on a dddon for a simple thing that should come with unity is silly. using UnityEngine; using System.Collections; using UnityEngine.UI;
public class GradiantTextEffect : MonoBehaviour {
public GUIText YourTextHere;
public Color OutlineColour;
public Gradient YourTextHereGradiant;
public float OutlineThickness;
// Use this for initialization
void Start () {
YourTextHere.GetComponent (Color) = YourTextHereGradiant; // change the textcolour to the gradient.
}
}
Answer by gorsefan · Feb 12, 2016 at 01:53 PM
Look back at the last four questions you asked for examples of how to use Get/AddComponent...
The syntax you are tripping up on concerns Generic Type Parameters ;)
So in JS, one might do
thingy.thisMethod(parameter);
And in thingy;
function thisMethod(arg){
print arg;
}
In C# we need to worry about the Type of argument, e.g.
public void thisMethod(string arg){
print(arg);
}
But what if we didn't know what the type was going to be, or we wanted "thisMethod" to handle strings, int, float, MyCustomObject etc as arguments?
We can help thisMethod by telling it what Type the argument is, by passing it as another parameter to thisMethod. It would be a reasonable guess to try this;
thingy.thisMethod(string, parameter); // wrong
or
thingy.thisMethod(typeof(parameter), parameter); // wrong*
but using Generics in C# the syntax actually looks like this;
thingy.thisMethod<string>(parameter);// ok
GetComponent only takes a Type as an argument and no other parameters, so it looks like this;
thingy.thisMethod<WhateverType>();
...and you might use it like this;
WhateverType whateverTypeInstance = thingy.thisMethod<WhateverType>();
Back to your actual question. Reading and learning all that explains your syntax error, but you don't need GetComponent as YourTextHere is a GUIText which already has a color property, so just do.
YourTextHere.color = ...
Your next problem is object type Gradient is not the same as object type Color, so all this won't work anyway. Try looking at this answer and then reconsider if all this is "a simple thing that should come with unity" ;)
Your answer
![](https://koobas.hobune.stream/wayback/20220612063927im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Can't add script to anything. 1 Answer
error CS0103: The name `dist' does not exist in the current context 1 Answer
Storing levels data 1 Answer
Trouble making jumping spider enemies 0 Answers
[HELP] How to lock input key? 1 Answer