在 Unity 中淡化 Alpha 值?

Fading Alpha Values In Unity?

我正在使用 Unity 5.4.0f3 为 Android 制作游戏,但我无法淡出精灵的 color.a 值。我试过动画,但它们似乎不适合我。我曾尝试使用 here and 中的代码,但这些代码也不起作用。我希望精灵在被点击时淡出大约 1 秒。我想我需要使用 for 循环和 Mathf.Lerp。请帮忙。

编辑:这是我要淡出的对象的检查器视图的图像。

因为 Sprite-Default material 不可 修改。

试试这个:

Easiest way:

/* Modify SpriteRenderer.color instead of Material.color */ 
//Get the renderer via GetComponent or have it cached previously
var renderer = GetComponent<SpriteRenderer>();
renderer.color = new Color(0f, 0f, 0f, 0f); // Do your lerping stuff with this property

If you still want to modify Material

  1. Project 选项卡中创建一个新的 material 并随意命名 想。 Project 选项卡 -> Create -> Material.

  2. 为其指定一个着色器,如下图所示。

  3. 将新创建的 material 分配给您的 Sprite Renderer Material 插槽。请注意,现在您可以修改 material 颜色 检查员。它已经不再变灰了。你应该 运行 你重新编码,它应该可以工作。

确定更改 sprRender.color,而不是 color.a。为您编写的简单代码,Fadeout 有效。添加您的高级。

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(SpriteRenderer))]

public class FadeOut : MonoBehaviour {
    SpriteRenderer sprRender;

    void Start()
    {
        sprRender = GetComponent<SpriteRenderer>();
    }

    void Update()
    {
        sprRender.color -= new Color(0, 0, 0, Time.deltaTime);
    }
}