如何从阵列中找到最大的游戏对象大小?

时间:2017-03-01 01:14:04

标签: c# unity3d unity5

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

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

浮动大小仅用于测试。

Inside 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函数中找到数组中所有游戏对象的游戏对象最大尺寸。所以浮动大小将获得最大的游戏对象大小。 然后找到游戏对象的半径,这样大小/ 2我认为。

然后我想在其他脚本中使用变量大小,所以我将使它成为全局公共和静态。但首先我如何从阵列中找到尺寸最大的游戏对象?

2 个答案:

答案 0 :(得分:0)

  

但首先我如何从阵列中找到尺寸最大的游戏对象   ?

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

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

答案 1 :(得分:0)

我不太了解团结,但我能想到的最简单的方法就是按照他们的大小来排序,然后选择第一个:

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

如果您只需要大小,请使用以下内容:

{{1}}