首页 > 解决方案 > 统一获取变换列表

问题描述

我正在尝试获取生成系统的转换列表。我尝试将 GameObject.FindGameObjectsWithTag 与数组而不是列表一起使用,看起来数组需要是 GameObjects 而不是变换,因为这就是它要寻找的。我还尝试了另一段代码,但它只将一个随机变换返回到一个列表中,这里是:

public List<Transform> t;

void Start()
{
    t.Add(GameObject.FindWithTag("Spawn").transform);
}

正如您在我的代码中看到的那样,它只会将一个转换添加到我的列表中。我想添加多个变换而不是一个。

标签: unity3d

解决方案


你可以像使用LinqSelect

using System.Linq;

...

public List<Transform> t;

void Start()
{
    t = GameObject.FindGameObjectsWithTag("Spawn").Select(go => go.transform).ToList();
} 

这基本上有点等于做

t = new List<Transform>();
foreach(var go in GameObject.FindObjectsWithTag("Spawn"))
{
    t.Add(go.transform);
}

推荐阅读