如何从嵌套列表中的游戏对象获取索引?
List<List<GameObject>> gpl = new List<List<GameObject>>();
List<GameObject> cbl ;
c = new gameObject("cube1");
cbl.Add(c);
gpl.Add(cbl);
Debug.Log(gpl.IndexOf(c);
答案 0 :(得分:0)
如果您只能访问random.choice
,则需要首先搜索c
cbl
使用旧版C#语法的示例:
var gameIndex = gpl.FirstOrDefault(cbl => cbl.Contains(c))?.IndexOf(c);
答案 1 :(得分:0)
你无法在gpl中直接获得'c'的索引。这是因为'c'的类型为var cbl = gpl.FirstOrDefault(c => c.Contains(c));
if (cbl != null)
{
var gameIndex = cbl.IndexOf(c);
}
,而gpl中的每个元素都是GameObject
。
所以你的任务分为两部分: 1)在cbl中获取'c'的索引 2)获取gpl中的cbl索引
以下是一些示例代码:
List<GameObject>
希望这有帮助!
答案 2 :(得分:0)
您可以使用Linq执行此操作并返回IEnumerable<Tuple<int,int>>
,其中包含内部列表包含您的值(c
)的列表中的所有索引(外部和内部)。
IEnumerable<Tuple<int,int>> indexes =
gpl.Select((games, i) => new {games, i})
.Where(arg => arg.games.IndexOf(c) > -1)
.Select(arg => Tuple.Create(arg.i, arg.games.IndexOf(c)));