C# 是否可以在C中向列表中添加两个参数?

C# 是否可以在C中向列表中添加两个参数?,c#,unity3d,C#,Unity3d,我试图找出如何将两个参数添加到一个列表中,以便将它们放在同一个列表中。我有一个游戏对象的列表,我想把一个计时器和那个游戏对象配对,这样我就可以看到它在触发器中已经有多长时间了。很明显,我仍然需要做定时器之类的事情。如果你对如何做有任何建议,请告诉我触发退出之类的事情,但这是我的代码: using System.Collections; using System.Collections.Generic; using UnityEngine; public class Grill : MonoB

我试图找出如何将两个参数添加到一个列表中,以便将它们放在同一个列表中。我有一个游戏对象的列表,我想把一个计时器和那个游戏对象配对,这样我就可以看到它在触发器中已经有多长时间了。很明显,我仍然需要做定时器之类的事情。如果你对如何做有任何建议,请告诉我触发退出之类的事情,但这是我的代码:

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


public class Grill : MonoBehaviour
{
    public int time = 0; // The amount of time the object was collided with;
    public int maxTime = 20; // The amount of time before the loop stops.

    public List<GameObject> grilledItems = new List<GameObject>();

    private void OnTriggerEnter(Collider other)
    {
        if(other.gameObject.CompareTag("Cookable"))
        {
            grilledItems.Add(other.gameObject);
        }
    }
}
使用:

使用:


我认为你不应该把事情弄得这么复杂。如果你需要,用地图。如果不是,结构就是你的朋友

public struct GrilledItemType
{
    public GameObject grilledObject;
    public Timer      timer;
};
那就

public List<GrilledItemType> grilledItems = new List<GrilledItemType>();

我认为你不应该把事情弄得这么复杂。如果你需要,用地图。如果不是,结构就是你的朋友

public struct GrilledItemType
{
    public GameObject grilledObject;
    public Timer      timer;
};
那就

public List<GrilledItemType> grilledItems = new List<GrilledItemType>();


为什么不使用字典,游戏对象是键,计时器是值?为什么不使用字典,游戏对象是键,计时器是值?噢,谢谢,你能解释一下元组是什么,我如何使用它吗?我试着做公共列表grilledItems=新列表;但是没有定时器的定义。点击我提供的链接。另外,我假设你知道你要使用什么定时器对象,我只是告诉你如何配对,这是你的问题。如果你需要特别了解计时器,你需要在你的问题中明确这一点。而且,我想我将使用ints来制作我自己的计时器,所以我的意思是,错误已经修复。但你能解释元组吗?好的,等等,我然后做了public List grilledItems=new List;错误:哦,谢谢,你能解释一下什么是元组,我怎么用它吗?我试着做公共列表grilledItems=新列表;但是没有定时器的定义。点击我提供的链接。另外,我假设你知道你要使用什么定时器对象,我只是告诉你如何配对,这是你的问题。如果你需要特别了解计时器,你需要在你的问题中明确这一点。而且,我想我将使用ints来制作我自己的计时器,所以我的意思是,错误已经修复。但你能解释元组吗?好的,等等,我然后做了public List grilledItems=new List;并得到了错误:哦,好的,谢谢@jiveturkey,但是当我尝试执行以下操作时会出现错误:grilledItems.Addother.gameObject;在OnTiggerEnter中。别忘了,你没有添加游戏对象。您正在添加GrilledItemType对象。所以你需要grilledItem类型grilledItem;grilledItem.grilledObject=游戏对象;//也指定您的计时器,然后执行grilledItems.AddgrilledItem;啊,对了,是的@jiveturkey,但是当我编写这个代码的时候呢?private void OnTiggerIntercollider other{if other.gameObject.CompareTagCookable{grilledItems.Addother.gameObject;}}}我不知道该怎么做。Ok@jiveturkey小更新,我编写了这段代码,但它使用了一个未赋值的局部变量?您需要添加一个计时器或grilledItem.Timer=nullOh好的,谢谢@jiveturkey,但是当我尝试执行以下操作时会出错:grilledItems.Addother.gameObject;在OnTiggerEnter中。别忘了,你没有添加游戏对象。您正在添加GrilledItemType对象。所以你需要grilledItem类型grilledItem;grilledItem.grilledObject=游戏对象;//也指定您的计时器,然后执行grilledItems.AddgrilledItem;啊,对了,是的@jiveturkey,但是当我编写这个代码的时候呢?private void OnTiggerIntercollider other{if other.gameObject.CompareTagCookable{grilledItems.Addother.gameObject;}}}我不知道如何才能做到这一点。Ok@jiveturkey小更新,我做了这段代码,但它使用了未分配的局部变量?需要添加计时器或grilledItem.Timer=null