unity3d - 获取 unity 中的 Transforms 列表

标签 unity3d

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

public List<Transform> t;

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

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

最佳答案

您可以使用 Linq Select喜欢

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);
}

关于unity3d - 获取 unity 中的 Transforms 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66733504/

相关文章:

c++ - Unity 的 HLSL/Cg 预处理器工作方式不对?

unity3d - 如何在 Unity 脚本中实现 Thread.Sleep() 功能?

c# - 在 Unity 上以编程方式绑定(bind)脚本属性(编辑模式不是在运行时)

unity3d - Unity 相机剪辑问题

c# - 从 C# 中的事件注销委托(delegate)时内存分配较高

c# - 哈希表中的列表丢失所有条目

c# - OpenCV圆圈检测C#实现

c# - 反编译 IEnumerators

android - 3D 游戏对象的级联效果(Tango、Unity、Android)

unity3d - 如何将 Input.GetAxis ("Mouse X") 或 Input.GetAxis ("Mouse Y") 转换为新的输入系统?