获取统一的变换列表

Leo*_*007 2 unity-game-engine

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

public List<Transform> t;

void Start()
{
    t.Add(GameObject.FindWithTag("Spawn").transform);
}
Run Code Online (Sandbox Code Playgroud)

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

der*_*ugo 5

你可以像这样使用LinqSelect

using System.Linq;

...

public List<Transform> t;

void Start()
{
    t = GameObject.FindGameObjectsWithTag("Spawn").Select(go => go.transform).ToList();
} 
Run Code Online (Sandbox Code Playgroud)

这基本上有点等于做

var array = GameObject.FindObjectsWithTag("Spawn");
t = new List<Transform>(array.Length);
foreach(var go in array)
{
    t.Add(go.transform);
}
Run Code Online (Sandbox Code Playgroud)