我如何从数组中找到最大的游戏对象大小?
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;
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;