gpt4 book ai didi

c# - 使游戏对象在有限的时间内出现和消失

转载 作者:行者123 更新时间:2023-11-30 20:40:42 25 4
gpt4 key购买 nike

我正在尝试让游戏对象在有限的时间内出现和消失(让我们暂时将时间函数放在一边)。

这是我的结论:

using UnityEngine;
using System.Collections;

public class Enemy1Behavior : MonoBehaviour
{
// Use this for initialization
void Start ()
{
}

// Update is called once per frame
void Update ()
{
this.gameObject.SetActive(false); // Making enemy 1 invisible
Debug.Log("Update called");
DisappearanceLogic(gameObject);
}

private static void DisappearanceLogic(GameObject gameObject)
{
int num = 0;
while (num >= 0)
{
if (num % 2 == 0)
{
gameObject.SetActive(false);
}
else
{
gameObject.SetActive(true);
}
num++;
}
}
}

现在,当我单击 Unity 中的播放按钮时,程序没有响应,我只能使用 End Task 从任务管理器中退出它。

(是的,我知道该方法中有一个无限循环)。

所以我猜我做错了什么。在 Unity 中制作 Gameobject Blink/Flash/appear-disappear 的最佳方法是什么?

谢谢大家。

最佳答案

您正在使用一个无限循环来完全锁定您的 Update(),因为 num 始终大于 0。

因此您可以使用 InvokeRepeating ( http://docs.unity3d.com/ScriptReference/MonoBehaviour.InvokeRepeating.html )

public GameObject gameobj;

void Start()
{
InvokeRepeating("DisappearanceLogic", 0, interval);
}

void DisappearanceLogic()
{
if(gameobj.activeSelf)
{
gameobj.SetActive(false);
}
else
{
gameobj.SetActive(true);
}
}

interval 是一个 float - 类似于 1f 0.5f 等。

关于c# - 使游戏对象在有限的时间内出现和消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33040116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com