Unity:在屏幕顶部实例化GameObject加上它自己的高度

时间:2017-02-10 20:20:41

标签: unity2d

我有这个代码在屏幕顶部实例化GameObjects然后它们就会崩溃。

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

这样可以正常工作,但它会在屏幕顶部产生,所以它们只是闪烁存在。我想在屏幕顶部加上预制件的高度来生成它们,这样它就可以显示在视野之外,然后落入视野中。

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

1 个答案:

答案 0 :(得分:0)

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

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

来执行此操作

获得渲染器后,可以使用 renderer.bounds.size

访问边界大小

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

预制件中可能有多个渲染器,因此您需要使用 GetComponentsInChildren< 渲染器>()来完成所有渲染器。并使用 bounds.Encapsulate

计算所有边界的总和
var renderer = target.GetComponentInChildren<Renderer>();
var height = renderer.bounds.size.y;