考虑将值存储在临时变量(UI.graphic.color)中

时间:2019-02-13 02:04:46

标签: c# unity3d 2d

我正在尝试更改多个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;
    }

尽管我总是遇到相同的错误,但我尝试了多种方法。

1 个答案:

答案 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;
}