Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 统一:用按键打开一个接一个的游戏对象_C#_Unity3d - Fatal编程技术网

C# 统一:用按键打开一个接一个的游戏对象

C# 统一:用按键打开一个接一个的游戏对象,c#,unity3d,C#,Unity3d,我有7个或更多的游戏对象。我只想一个接一个地运行游戏对象。从游戏对象0-->游戏对象1-->游戏对象2开始。此时,每次按下空格时,我的脚本都会激活一个新对象,而旧对象不会被停用 谢谢你的帮助 using UnityEngine; using System.Collections; using System.Collections.Generic; public class ToggleTest : MonoBehaviour { public GameObject[] objects;

我有7个或更多的游戏对象。我只想一个接一个地运行游戏对象。从游戏对象0-->游戏对象1-->游戏对象2开始。此时,每次按下空格时,我的脚本都会激活一个新对象,而旧对象不会被停用

谢谢你的帮助

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class ToggleTest : MonoBehaviour
{
    public GameObject[] objects; 
    public int objCount = 0; 


    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {

            objCount += 1;
            objects[objCount].SetActive(true); 
            
        }
      
    }
}

如果我正确理解您的问题,请尝试以下方法:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class ToggleTest : MonoBehaviour
{
    public GameObject[] objects; 
    public int objCount = 0;
    private float smallDelay = 0.1f; 


    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space) && smallDelay <= 0)
        {
            objCount += 1;
            objects[objCount].SetActive(true); 
            objects[objCount-1].SetActive(false);  // this is only if you want to deactivate the previous object.
            smallDelay = 0.1f;
        }
        smallDelay -= Time.DeltaTime;
      
    }
}

将其添加到if语句或Update()中的其他地方。

您所说的“一起玩所有游戏对象”是什么意思?你是说当你第一次按空格键的时候,它们都被激活了吗?每次我按空格键的时候,都会有一个额外的游戏对象被激活。啊,请看,这将是一个很好的信息,可以包含在问题中;)我把问题编辑得更清楚了。毫不拖延,它工作得很好!您知道如何在最后一个游戏对象之后重新启动整个“计数”过程吗。它是否再次以对象0开始?请检查我的帖子上的编辑:否,它在最后一个对象之后仍然停止,并且不会在播放模式下再次开始。还有其他建议吗?@unitybeginner我重新编辑了答案,行吗?@unitybeginner看起来一次只激活一个对象,是不是?考虑重置到开始或结束以逃避,这将是一个问题,考虑。
if (objCount == objects.Length)
{
   objCount = 0;
   object[objCount].setActive(false);
   object[0].setActive(true);

}