使 GameObject 在有限的时间内出现和消失
Making GameObject appear and disappear for a finite amount of time
我正在尝试让 GameObject 在有限的时间内出现和消失(让我们暂时搁置时间函数)。
这是我得出的结论:
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 的最佳方法是什么?
谢谢大家。
您可以为眨眼等制作动画 - Animations in Mecanim. Appearing and disappearing you can achieve using gameObject.SetActive(true/false);
. If you want to make something with time its better to use Coroutines or just Invoke with delay parameter - Invoke Unity Docs。
您正在使用无限循环,它会完全锁定您的 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);
}
}
间隔是一个浮点数 - 类似于 1f 0.5f 等
我正在尝试让 GameObject 在有限的时间内出现和消失(让我们暂时搁置时间函数)。
这是我得出的结论:
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 的最佳方法是什么?
谢谢大家。
您可以为眨眼等制作动画 - Animations in Mecanim. Appearing and disappearing you can achieve using gameObject.SetActive(true/false);
. If you want to make something with time its better to use Coroutines or just Invoke with delay parameter - Invoke Unity Docs。
您正在使用无限循环,它会完全锁定您的 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);
}
}
间隔是一个浮点数 - 类似于 1f 0.5f 等