请使用C#控制unity里的图片在025秒由绿色变成红色再由025秒由红色变成绿色的代码
以下是使用C#控制unity里的图片在0.25秒由绿色变成红色再由0.25秒由红色变成绿色的代码:
using UnityEngine;
using System.Collections;
public class ColorChange : MonoBehaviour {
public float duration = 0.25f; // 变换持续时间
private Color startColor; // 初始颜色
private Color endColor; // 终止颜色
private float timeElapsed = 0.0f; // 已经过去的时间
private bool isRed = false; // 是否变为红色
// Use this for initialization
void Start () {
startColor = GetComponent<SpriteRenderer>().color; // 获取初始颜色
endColor = Color.red; // 设置终止颜色为红色
}
// Update is called once per frame
void Update () {
timeElapsed += Time.deltaTime; // 更新已经过去的时间
float t = Mathf.Clamp01(timeElapsed / duration); // 计算时间比例
if (isRed) {
GetComponent<SpriteRenderer>().color = Color.Lerp(endColor, startColor, t); // 从红色变为绿色
} else {
GetComponent<SpriteRenderer>().color = Color.Lerp(startColor, endColor, t); // 从绿色变为红色
}
if (t >= 1.0f) { // 变换完成后切换颜色
timeElapsed = 0.0f; // 重置时间
isRed = !isRed; // 切换颜色
}
}
}
将此脚本挂载到需要变换颜色的图片上即可
原文地址: https://www.cveoy.top/t/topic/fhxK 著作权归作者所有。请勿转载和采集!