我正在尝试更改多个UI元素的Alpha。
“ UnityEngine.UI.Graphic.color考虑将值存储在临时变量中”
public class DialogueManager : MonoBehaviour {
public Text nameText;
public Text dialogueText;
public Image facePlate;
public PlayerController thePlayer;
void Awake () {
thePlayer = FindObjectOfType<PlayerController> ();
}
void Update () {
if (!thePlayer.isTalking) {
Color temp = facePlate.color;
temp.a = 0f;
nameText.color.a = temp.a;
dialogueText.color.a = temp.a;
facePlate.color.a = temp.a;
}
尽管我总是遇到相同的错误,但我尝试了多种方法。
答案 0 :(得分:1)
不允许直接更改Color的任何变量。因此,您可以将Color结构的值分配给临时变量并进行更改。然后将温度重新分配给颜色部分。在这里,我们每次基本上都是获取颜色变量的值,然后对其进行修改并重新分配新值
if (!thePlayer.isTalking) {
Color temp = facePlate.color;
temp.a = 0f;
facePlate.color = temp;
temp = nameText.color;
temp.a = 0f;
nameText.color = temp;
temp = dialogueText.color;
temp.a = 0f;
dialogueText.color = temp;
}