如何在Unity 3D中暂时使精灵消失?

时间:2019-06-26 00:00:17

标签: c# unity3d

我统一地添加了一个2D精灵,该精灵的角色具有火箭靴的助推器外壳。我想让2D精灵在按下空格后出现,并在1/4秒后消失。

如何从C#代码打开和关闭推进器精灵的可见性?

2 个答案:

答案 0 :(得分:1)

您可能还想使用Coroutines。想法是这是一个方法调用,其中可能包含延迟或等待时间,方法“完成”之前。有关详细说明,请参见链接页面。

以下是协程示例方法:

public IEnumerator ShowBoostersForQuarterSecond() {
    spriteRenderer.enabled = true;           //show
    yield return new WaitForSeconds(0.25f);  //wait
    spriteRenderer.enabled = false;          //hide
}

然后您会通过调用来调用它

StartCoroutine(ShowBoostersForQuarterSecond());

请注意,您可能必须执行gameObject.renderer而不是spriteRenderer。或创建一个字段来保存Sprite Renderer引用,具体取决于您。

答案 1 :(得分:0)

我对Unity完全陌生,但是您可以将Timer与TimerElapsed事件一起使用来设置您的出现/消失时间。 https://docs.microsoft.com/en-us/dotnet/api/system.timers.timer.elapsed?view=netframework-4.8

这里有很多示例

关于精灵,您可以使用它来防止所需的精灵渲染

spriteRenderer.enabled = false; 

我认为在解决方案中配置Timer后,您可能会遇到类似的问题

private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)
{
    spriteRenderer.enabled = false;
}