在 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
在 Project
选项卡中创建一个新的 material 并随意命名
想。 Project
选项卡 -> Create
-> Material
.
为其指定一个着色器,如下图所示。
将新创建的 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);
}
}
我正在使用 Unity 5.4.0f3 为 Android 制作游戏,但我无法淡出精灵的 color.a
值。我试过动画,但它们似乎不适合我。我曾尝试使用 here and 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
在
Project
选项卡中创建一个新的 material 并随意命名 想。Project
选项卡 ->Create
->Material
.为其指定一个着色器,如下图所示。
将新创建的
material
分配给您的 Sprite RendererMaterial
插槽。请注意,现在您可以修改 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);
}
}