2017-02-19 7 views
0

У меня есть холст для пользовательского интерфейса, с изображением того же размера холста. Изображение имеет rgba из 0,0,0,0, что делает его невидимым (потому что a - 0). Я хочу, чтобы изображение затухало в черном от скрипта. Вот код, который я использую:Невозможно изменить альфа изображения в скрипте?

public class NavigationC : MonoBehaviour { 
    public Image screen; 
    float fadeTime = 3f; 
    Color colorToFadeTo; 

    void StartGame() 
    { 
     colorToFadeTo = new Color(0f, 0f, 0f, 255f); 
     screen.CrossFadeColor(colorToFadeTo, fadeTime, true, true); 
    } 
} 

Теперь это ничего не делает при выполнении. Но когда я изменяю значение изображения a вручную в единстве, чтобы изображение стало видимым, я вижу, как скрипт меняет цвет изображения. Таким образом, скрипт работает, он просто не отображается, потому что значение a не изменяется скриптом. Итак, как я могу заставить изображение исчезать от невидимого до черного?

ответ

5

Вот ваша проблема:

новый цвет (0f, 0f, 0f, 255f);

Color параметр конструктора принимает значения от 0f к 1f но вы передаете 0f к 255f значения диапазона к нему.

Это должно быть:

colorToFadeTo = new Color(0f, 0f, 0f, 1f); 

Если вы хотите использовать 0 для 255 диапазона, то вы должны разделить его на 255.

colorToFadeTo = new Color(0f, 0f, 0f, 255f/255f); 
+0

Тогда почему 255f работа ** ** отлично, когда я даю изображению цвет, чтобы начать? – RnRoger

+0

И я пробовал 1f перед тем, как перейти к 255f, 1f тоже не работал. – RnRoger

+0

И теперь я не могу даже получить 255f или любое другое значение, чтобы работать, даже когда я даю картинке цвет, чтобы начать; он просто прыгает на черный или вообще не меняется. – RnRoger

 Смежные вопросы

  • Нет связанных вопросов^_^