【问题标题】:Changing Alpha value of image in Unity3D to create glowing effect在 Unity3D 中更改图像的 Alpha 值以创建发光效果
【发布时间】:2016-10-24 20:29:56
【问题描述】:

我有两张图片:一张有发光边框,一张没有。我想通过淡入和淡出发光图像来创建图像发光的效果。我的代码:

private Image lightImage;
private float alpha;

// Use this for initialization
void Start ()
{

lightImage = GetComponent<Image>();
alpha = Time.deltaTime * 10;

}

void FixedUpdate()
{

// fade to transparent over 500ms.
lightImage.CrossFadeAlpha(0.0f, alpha, false);
// and back over 500ms.
lightImage.CrossFadeAlpha(1.0f, alpha, false);
}

我似乎无法让它像我想要的那样工作(随着时间的推移缓慢过渡。)它快速闪烁,但这不是预期的效果。

【问题讨论】:

    标签: image user-interface animation unity3d


    【解决方案1】:
    1. 替换: alpha = Time.deltaTime * 10; 替换为 alpha = 0.5f; 而我 认为您应该将 alpha 变量重命名为 duration
    2. 您不需要将CrossFadeAlpha 放入FixedUpdate()。它是 补间。它不需要跨多个帧执行。 只需输入Start()即可。
    3. alpha 设置为绝对0 不是一个好主意,因为有时, Unity 将 0 个 alpha 对象视为已禁用,但我没有 当然。如果您确实遇到了这个问题,请将 alpha 设置为一个非常 改为关闭为 0(例如0.004f)。
    4. 如果你想让它淡出然后淡入,你应该这样做 像这样:

      IEnumerator Fade() { 
          // fade to transparent over 500ms.
          lightImage.CrossFadeAlpha(0.004f, 0.5f, false);
      
          // Wait for 500ms
          yield return new WaitForSeconds(0.5f); 
      
          // and back over 500ms.
          lightImage.CrossFadeAlpha(1.0f, 0.5f, false);
      }
      
      void Start() {
          StartCoroutine(Fade());
      }
      

    【讨论】:

      猜你喜欢
      • 2019-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多