这是我第一次通过Unity制作简单的2D游戏,我遇到了问题。 我想逐步淡出和淡出文本。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class StageSet : MonoBehaviour
{
Text stage;
Created c = new Created(); //script of level was made already
float time = 0;
float fades = 0;
float fadex = 1;
void Update ()
{
stage = GetComponent<Text>();
stage.text = "Stage " + c.getLevel();
time += Time.deltaTime;
if (time > 2 && time<=3.0f && c.getLevel()==1)
Fadein();
if (time > 3.0f && time < 5 && c.getLevel()==1)
Fadeout();
}
void Fadein()
{
if (fades < 1)
{
fades += 0.1f;
stage.color = new Color(255, 0, 0, fades);
}
}
void Fadeout()
{
if(fadex > 0)
{
fadex -= 0.1f;
stage.color = new Color(255, 0, 0, fadex);
}
}
}
它立即起作用了,但由于更新功能,我无法再实现Fadein和Fadeout的功能。在使用Fadein和Fadeout函数后,是否有任何初始化变量fades和fadex的解决方案?
答案 0 :(得分:0)
你可以这样做:
void Fadein()
{
if (fades < 1)
{
fades += 0.1f;
stage.color = new Color(255, 0, 0, fades);
fadex = fades;
}
}
void Fadeout()
{
if(fadex > 0)
{
fadex -= 0.1f;
stage.color = new Color(255, 0, 0, fadex);
fades = fadex
}
}
但是当然有更多的方法可以做到这一点,一种方法是使两个淡入和淡出Ienumerator方法,然后在Co-routines上运行它们,而不是在Update()上运行。