我如何从数组中找到最大的游戏对象大小?

How can i find the largest gameobject size from array?

void Awake()
    {
        Clone();
        objects = GameObject.FindGameObjectsWithTag("ClonedObject");

        float size = objects[0].transform.localScale.x;
    }

浮动大小仅供测试。

在 Clone() 函数中我设置了每个游戏对象的大小

for (var i = 0; i < ObjectCount; i++)
        {
            var o = Instantiate(ObjectToCreate);
            o.tag = "ClonedObject";
            o.transform.SetParent(base.gameObject.transform);
            o.transform.localScale = new Vector3(ObjectSize, ObjectSize, ObjectSize);

变量 ObjectSize 是全局的

我想在 Awake 函数中找到数组中所有游戏对象中最大的游戏对象。所以浮动大小将获得最大的游戏对象大小。 然后找到游戏对象半径所以size/2我想。

然后我想在其他脚本中使用可变大小,所以我将其设为全局 public 和静态。但首先我如何从数组中找到最大的游戏对象?

But first how do i find the biggest gameobject by size from the array ?

在您的 Awake() 方法中,您可以简单地使用 for each 循环来查找最大值。

float LargestSize = 0;
foreach(var element in objects){
  float Size = element.transform.localScale.x;
  if(Size > LargestSize) LargestSize = Size;
}

我不太了解 unity,但我能想到的最简单的方法是按大小排序并取第一个:

var maxobj = objects.OrderByDescending(i => i.Size).FirstOrDefault();

如果您只需要尺寸,请使用以下尺寸:

var maxsize = objects.Max(i => (int?)i.Size) ?? 0;