Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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#_Arrays_List_Unity3d - Fatal编程技术网

C# 使用上次添加到阵列/列表中的游戏对象

C# 使用上次添加到阵列/列表中的游戏对象,c#,arrays,list,unity3d,C#,Arrays,List,Unity3d,我在联合体与C#一起工作。我在数组中有3个不同的GameObjects,我想使用这样的if语句将最后生成/添加的对象添加到列表中:如果对象1生成,那么… 我该怎么做?代码如下: public GameObject[] arrows; public float interval = 5; private List<GameObject> myObjects = new List<GameObject>(); // Use this for initialization v

我在联合体与C#一起工作。我在数组中有3个不同的
GameObject
s,我想使用这样的if语句将最后生成/添加的对象添加到列表中:
如果对象1生成,那么…

我该怎么做?代码如下:

public GameObject[] arrows;
public float interval = 5;
private List<GameObject> myObjects = new List<GameObject>();

// Use this for initialization
void Start()
{
    InvokeRepeating("SpawnArrow", 0f, interval);
}

void SpawnArrow()
{
    if (myObjects.Count > 0)
    {
        Destroy(myObjects.Last());
        myObjects.RemoveAt(myObjects.Count - 1);
    }
    GameObject prefab = arrows[UnityEngine.Random.Range(0, arrows.Length)];
    GameObject clone = Instantiate(prefab, new Vector3(0.02F, 2.18F, -1), Quaternion.identity);

    myObjects.Add(clone);
}
公共游戏对象[]箭头;
公共浮动间隔=5;
私有列表myObjects=新列表();
//用于初始化
void Start()
{
调用重复(“生成箭头”,0f,间隔);
}
空箭头()
{
如果(myObjects.Count>0)
{
破坏(myObjects.Last());
myObjects.RemoveAt(myObjects.Count-1);
}
游戏对象预制=箭头[UnityEngine.Random.Range(0,arrows.Length)];
游戏对象克隆=实例化(预置,新向量3(0.02F,2.18F,-1),四元数.identity);
myObjects.Add(克隆);
}

首先,先保留随机整数的值,以便进一步逻辑(if语句):


首先,为进一步的逻辑(if语句)保留随机整数的值:


您可能想看看如何使用。这是一个“后进先出”数据结构的示例,如果您希望:

使用生成/添加到列表中的最后一个对象

使用堆栈的示例:

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Stack stack = new Stack();

            stack.Push("First Item");
            stack.Push("Second Item");

            Console.WriteLine(stack.Pop());
            Console.WriteLine(stack.Pop());

            Console.ReadKey();
        }
    }
}
输出:

Second Item
First Item
请注意,当项目添加(推送)到堆栈,然后从堆栈中移除(弹出)时,您将首先获得添加到堆栈的最后一个项目


您可能想看看如何使用。这是一个“后进先出”数据结构的示例,如果您希望:

使用生成/添加到列表中的最后一个对象

使用堆栈的示例:

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Stack stack = new Stack();

            stack.Push("First Item");
            stack.Push("Second Item");

            Console.WriteLine(stack.Pop());
            Console.WriteLine(stack.Pop());

            Console.ReadKey();
        }
    }
}
输出:

Second Item
First Item
请注意,当项目添加(推送)到堆栈,然后从堆栈中移除(弹出)时,您将首先获得添加到堆栈的最后一个项目


数据结构ftw。数据结构ftw。