2017-03-01 49 views
-1
void Awake() 
    { 
     Clone(); 
     objects = GameObject.FindGameObjectsWithTag("ClonedObject"); 

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

浮动大小仅用于测试。如何从数组中找到最大的gameobject大小?

内部的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); 

变量对象大小是全球

我想在清醒功能找到一个游戏物体形状的最大尺寸的所有gameobjects在数组中。所以浮点大小将获得最大的gameobject大小。 然后找到gameobject半径如此大小/ 2我认为。

然后,我想在其他脚本中使用变量大小,所以我将使它成为全局公共和静态。但首先,我如何从数组中找到最大的gameobject大小?

回答

0

但首先,我如何从数组 的大小找到最大的gameobject?

你的Awake()方法里面你可以简单地使用一个for each loop来找到最大的值。

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

我不知道很多关于团结,但我能想到的最简单的方法是通过它们的大小排序,并采取第一种:

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

,如果你只是需要的尺寸使用以下:

var maxsize = objects.Max(i => (int?)i.Size) ?? 0; 
相关问题