淡出Unity UI文本

Isa*_*dni 7 c# unity-game-engine unity3d-gui

当我在UI文本上运行以下代码时

Color color = text.color;
color.a -= 1.0f;
text.color = color;
Run Code Online (Sandbox Code Playgroud)

文本的alpha值立即设置为0.我怎样才能简单地淡出文本.

Jon*_*han 12

如果您使用的是Unity 4.6及更高版本,则可以利用CrossFadeAlphaCrossFadeColor.

例:

// fade to transparent over 500ms.
text.CrossFadeAlpha(0.0f, 0.05f, false);

// and back over 500ms.
text.CrossFadeAlpha(1.0f, 0.05f, false);
Run Code Online (Sandbox Code Playgroud)

这两个函数使用起来更好一些,因为您不必担心跟踪任何事情.只需打电话,即可开始新的一天.


Chr*_*and 3

Unity 中的颜色值在一个范围内工作0f..1f,因此:

  • 0.0f为 0%(或编辑器中所示的 0/255)
  • 0.5f为 50%(或 127.5/255)
  • 1.0f为 100%(或 255/255)

减去 将使1.0f该值变为 0%。尝试不同的减量,例如0.1f

color.a -= 0.1f;
Run Code Online (Sandbox Code Playgroud)