只显示一次 Gameobject unity
show Gameobject one time only unity
我有游戏对象,我只想显示一次,如果我显示了分数 < 2000 的游戏对象,如果分数 > 2000 的游戏对象未显示,之后当分数 <2000 的游戏对象不再显示时(我将游戏对象作为我的图像分配给检查器)
if (Scores < 2000) {
Rock1.gameObject.SetActive (true);
}
if (Scores > 2000) {
Rock1.gameObject.SetActive (false);
}
只需使用一个布尔变量。您可以使用此代码:
bool hideOneTime = false;
...
if (!hideOneTime)
{
if (score < 2000)
{
Rock1.gameObject.SetActive (true);
}
else if (score > 2000)
{
Rock1.gameObject.SetActive (false);
hideOneTime = true;
}
}
希望对你有帮助
您希望在分数 < 2000 时显示游戏对象,然后在 2000 > 2000 时隐藏游戏对象,但不要再这样做了。
您可以使用布尔变量作为 Update
函数中的标志来执行此操作,但由于您希望它成为 运行 一次,因此最好在协程函数中执行此操作。 Unity 的 Start
协程功能很好,会自行启动。这将 运行 一次并且不会再次检查它,因为与 Update
函数不同,协程函数将立即退出。
public int scores;
public GameObject Rock1;
IEnumerator Start()
{
//Wait until score is < 2000
while (!(scores < 2000))
yield return null;
//Show Object
Rock1.SetActive(true);
//Wait again until score is > 2000
while (!(scores > 2000))
yield return null;
//Hide Object
Rock1.SetActive(false);
//Done. Coroutine stops!
}
在 Start() 函数而不是 Update() 函数中编写代码。
否则游戏对象将在崩溃前无限生成。
如果您想隐藏游戏对象,请尝试通过代码关闭渲染器,但如果您希望您的对象永远按照其逻辑运行,请在需要时尝试销毁它,并在需要时使用 IEnumerator控制时间。谢谢。
您可以简单地测试游戏对象的状态。
例如,如果你想显示它并执行一次 SetActive,你可以这样做:
if(!Rock1.gameObject.activeSelf)
Rock1.gameObject.SetActive(true);
反之亦然,如果你想隐藏它。
编码愉快!
我有游戏对象,我只想显示一次,如果我显示了分数 < 2000 的游戏对象,如果分数 > 2000 的游戏对象未显示,之后当分数 <2000 的游戏对象不再显示时(我将游戏对象作为我的图像分配给检查器)
if (Scores < 2000) {
Rock1.gameObject.SetActive (true);
}
if (Scores > 2000) {
Rock1.gameObject.SetActive (false);
}
只需使用一个布尔变量。您可以使用此代码:
bool hideOneTime = false;
...
if (!hideOneTime)
{
if (score < 2000)
{
Rock1.gameObject.SetActive (true);
}
else if (score > 2000)
{
Rock1.gameObject.SetActive (false);
hideOneTime = true;
}
}
希望对你有帮助
您希望在分数 < 2000 时显示游戏对象,然后在 2000 > 2000 时隐藏游戏对象,但不要再这样做了。
您可以使用布尔变量作为 Update
函数中的标志来执行此操作,但由于您希望它成为 运行 一次,因此最好在协程函数中执行此操作。 Unity 的 Start
协程功能很好,会自行启动。这将 运行 一次并且不会再次检查它,因为与 Update
函数不同,协程函数将立即退出。
public int scores;
public GameObject Rock1;
IEnumerator Start()
{
//Wait until score is < 2000
while (!(scores < 2000))
yield return null;
//Show Object
Rock1.SetActive(true);
//Wait again until score is > 2000
while (!(scores > 2000))
yield return null;
//Hide Object
Rock1.SetActive(false);
//Done. Coroutine stops!
}
在 Start() 函数而不是 Update() 函数中编写代码。 否则游戏对象将在崩溃前无限生成。
如果您想隐藏游戏对象,请尝试通过代码关闭渲染器,但如果您希望您的对象永远按照其逻辑运行,请在需要时尝试销毁它,并在需要时使用 IEnumerator控制时间。谢谢。
您可以简单地测试游戏对象的状态。
例如,如果你想显示它并执行一次 SetActive,你可以这样做:
if(!Rock1.gameObject.activeSelf)
Rock1.gameObject.SetActive(true);
反之亦然,如果你想隐藏它。
编码愉快!