用c#写一个进入场景后,场景中的图片“一”一渐隐渐现平滑显示图片“二”渐隐渐现的代码
时间: 2023-09-08 20:07:29 浏览: 59
您好,以下是用C#实现进入场景后图片渐隐渐现平滑显示的代码:
```csharp
using UnityEngine;
using System.Collections;
public class ImageFade : MonoBehaviour
{
public Texture2D firstImage;
public Texture2D secondImage;
public float fadeTime = 1.0f;
public float waitTime = 1.0f;
private float alpha = 0.0f;
private float timer = 0.0f;
private int state = 0;
void Start()
{
// 初始化状态
alpha = 0.0f;
timer = 0.0f;
state = 0;
// 设置第一张图片
GetComponent<GUITexture>().texture = firstImage;
}
void Update()
{
// 更新计时器
timer += Time.deltaTime;
// 根据当前状态更新图片透明度
switch (state)
{
case 0: // 第一张图片渐隐
alpha = Mathf.Lerp(1.0f, 0.0f, timer / fadeTime);
break;
case 1: // 等待
alpha = 0.0f;
if (timer >= waitTime)
{
state = 2;
timer = 0.0f;
}
break;
case 2: // 第二张图片渐现
alpha = Mathf.Lerp(0.0f, 1.0f, timer / fadeTime);
break;
case 3: // 第二张图片渐隐
alpha = Mathf.Lerp(1.0f, 0.0f, timer / fadeTime);
break;
}
// 更新图片透明度
Color color = GetComponent<GUITexture>().color;
color.a = alpha;
GetComponent<GUITexture>().color = color;
// 切换图片
if (state == 0 && alpha <= 0.0f)
{
GetComponent<GUITexture>().texture = secondImage;
state = 1;
timer = 0.0f;
}
else if (state == 2 && alpha >= 1.0f)
{
state = 3;
timer = 0.0f;
}
}
}
```
使用方法:将上述代码添加到场景中的任意一个游戏对象上,然后在该游戏对象的GUITexture组件上设置firstImage和secondImage两张图片。其中,第一张图片是进入场景时显示的图片,第二张图片是最终显示的图片。fadeTime和waitTime是渐变时间和等待时间,可以根据需要进行调整。
阅读全文