2017-03-01 48 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; 
相關問題