【发布时间】:2016-03-22 02:37:04
【问题描述】:
嘿嘿,我正在尝试让我的 GUI 在不使用时褪色。具体来说,对于 Minecraft 风格的工具栏,我希望它在玩家使用滚轮时弹出并在他们完成滚动后几秒钟内消失。 GUI 运行良好,但我无法让这个褪色的东西正常工作。我假设一旦我让选择文本工作,精灵会很容易地跟随,所以我现在只讨论选择文本。 inventoryText 以全白开始游戏。
protected void OnGUI()
{
if (isInvGUIDirty)
{
// Update selection text
controllerInterface.inventoryText.CrossFadeAlpha(255f, 0, false);
controllerInterface.inventoryText.CrossFadeAlpha(0.1f, 2, false);
^ 这导致(当我移动滚轮时)库存文本变为全白,两秒钟后变为浅灰色。没有圆滑的过渡,仍然清晰可见。每次我移动滚轮时都会重复。
controllerInterface.inventoryText.CrossFadeAlpha(255f, 0, false);
controllerInterface.inventoryText.CrossFadeAlpha(0f, 2, false);
^ 这导致(当我移动滚轮时)库存文本变为全白,两秒钟后变为不可见。每次我移动滚轮时都会重复。显然 0.1 alpha 会带来很大的不同 o_O
controllerInterface.inventoryText.color = Color.white;
controllerInterface.inventoryText.CrossFadeAlpha(0.1f, 2, false);
^ 这会导致库存文本慢慢变淡为浅灰色,但滚轮上没有变化。
关于为什么 CrossFadeAlpha() 没有按预期工作的任何想法?
【问题讨论】:
-
float alpha 范围不是 0f 到 1f 吗?
-
啊,您使用的是“古老”的统一 UI 系统。这是不可能的。幸运的是,新系统非常简单。 (1)点击“添加画布”(通常你想要“按屏幕大小缩放”(2)点击“添加文本”。你完成了。
标签: c# unity3d scripting unity5 unity5.3