Animation Unity3D动画的透明度选项

Animation Unity3D动画的透明度选项,animation,unity3d,transparency,Animation,Unity3d,Transparency,我正在开发Unity3D的一个小项目。在这个项目中有一些关键点。当我单击一个键时,该键的透明度将平滑地更改为50%到100%,此更改将花费0.5秒。所以我需要透明度选项的动画。在Unity3D中是否可以平滑地设置对象透明度的动画?您应该在更新循环中更改颜色。使用Time类测量时间。查看Lerp文档以了解示例 我还发现了这段代码,它使用Lerp更改透明度,但不是您想要的方式,不幸的是,它是unityscript: #pragma strict var duration : float = 1.0

我正在开发Unity3D的一个小项目。在这个项目中有一些关键点。当我单击一个键时,该键的透明度将平滑地更改为50%到100%,此更改将花费0.5秒。所以我需要透明度选项的动画。在Unity3D中是否可以平滑地设置对象透明度的动画?

您应该在
更新
循环中更改颜色。使用
Time
类测量时间。查看
Lerp
文档以了解示例

我还发现了这段代码,它使用
Lerp
更改透明度,但不是您想要的方式,不幸的是,它是unityscript:

#pragma strict

var duration : float = 1.0;
var alpha : float = 0;

function Update(){

lerpAlpha();
}

function lerpAlpha () {

var lerp : float = Mathf.PingPong (Time.time, duration) / duration;

alpha = Mathf.Lerp(0.0, 1.0, lerp) ;
renderer.material.color.a = alpha;
}

更新

上面的答案仍然有效,但我想推荐使用,一个免费的插件,带有go pro选项,可以执行各种LERP-颜色、位置、旋转、alpha等。它非常易于使用,性能良好,我已经在多个项目中使用过它

如果您的脚本是c脚本:


是的,这是可能的。你试过制作统一动画吗?
using UnityEngine;
using System.Collections;

public class WebPlayerController : MonoBehaviour {
    public bool selected = false;
    //Setting the colors like this, you can change them via inspector
    public Color enabledColor = new Color(1,1,1,1);
    public Color disabledColor = new Color(1,1,1,0.5f);
    public float transitionTime = 0.5f;
    private float lerp = 0;

    void Start(){
        lerp = selected ? 1 : 0;
    }
    //You can set by this method the button state! :)
    public void SetSelected(bool isSelected){
        selected = isSelected;
    }
    void Update(){
        lerp += (isSelected ? 1 : -1) * Time.deltaTime/transitionTime;
        lerp = Mathf.Clamp01 (lerp);
        renderer.material.color = Color.Lerp(disabledColor,enabledColor,lerp);
    }
}