0

我有这段代码在屏幕顶部实例化 GameObjects 然后它们掉下来。

float RandX = GetRandomXPos();
float RandY = screenSize.y;
Vector3 ballPos = new Vector3(RandX,RandY,0);
GameObject clone = Instantiate(BallPrefab, ballPos, transform.rotation) as GameObject;

这很好用,但它会在屏幕顶部生成它们所以它们只是眨眼就存在。我想将它们生成在屏幕顶部加上预制件的高度,这样它就可以出现在视野之外,然后又掉到视野中。

获得我需要抵消的高度的最佳方法是什么?

4

1 回答 1

0

要获取预制件的大小,您需要获取预制件所具有的渲染器的信息。

为此,您必须在其层次结构中获取组件,您可以使用GetComponentInChildren< Renderer >()

获得渲染器后,您可以使用renderer.bounds.size访问边界大小

这是一个Vector3,它具有对象的尺寸,高度是Y 分量

预制件中可能有多个渲染器,因此您需要使用GetComponentsInChildren< Renderer >()来获取它们。并使用bounds.Encapsulate计算所有边界的总和

var renderer = target.GetComponentInChildren<Renderer>();
var height = renderer.bounds.size.y;
于 2017-03-15T16:26:22.253 回答