【发布时间】:2017-01-19 14:51:10
【问题描述】:
我有点编程菜鸟,我正在尝试制作一个 GameObject ,在设定的几秒钟内停用和重新激活。例如,我希望我的星星在它消失之前慢慢闪烁,以创造一个很酷的外观影响。如果有更好的方法来使用此方法而不使用 SetActive(false) 和其他方法,请随时给我您的方法 - 这是我的代码,对不起,如果它很乱,我必须在这方面做得更好,但我会到期时间
谢谢大家
//Timers
public float ScoreTimer;
public float[] TimeMarkStamp;
//Scoring
public int totalCollStars;
[Space]
public int maxStars = 5;
public GameObject[] StarImages;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
ScoreTimer += Time.deltaTime;
if (ScoreTimer <= TimeMarkStamp[0])
{
Debug.Log("It works");
StarImages[0].SetActive(false);
}
else if (ScoreTimer <= TimeMarkStamp[1])
{
Debug.Log("It workds" + TimeMarkStamp[1]);
StarImages[1].SetActive(false);
}
else if (ScoreTimer <= TimeMarkStamp[2])
{
Debug.Log("It works" + TimeMarkStamp[2]);
StarImages[2].SetActive(false);
}
else if (ScoreTimer <= TimeMarkStamp[3])
{
//This is not working
InvokeRepeating("flickerEffect", 3f, 1f);
}
}
void flickerEffect()
{
bool flickCheck = false;
if (flickCheck == false)
{
StarImages[3].SetActive(true);
flickCheck = true;
}
else if (flickCheck == true)
{
StarImages[3].SetActive(false);
flickCheck = false;
}
}
}
【问题讨论】:
-
尝试查看/谷歌搜索
Coroutines,但如果您要制作游戏,编程本身必须非常强大。 -
是的,最简单的方法是使用协程,但根据要实现的目标,您可能希望使用其他方法使对象不可见。
-
好的,非常感谢,我会好好研究一下