我有这个代码在屏幕顶部实例化GameObjects然后它们就会崩溃。
float RandX = GetRandomXPos();
float RandY = screenSize.y;
Vector3 ballPos = new Vector3(RandX,RandY,0);
GameObject clone = Instantiate(BallPrefab, ballPos, transform.rotation) as GameObject;
这样可以正常工作,但它会在屏幕顶部产生,所以它们只是闪烁存在。我想在屏幕顶部加上预制件的高度来生成它们,这样它就可以显示在视野之外,然后落入视野中。
获得我需要抵消的高度的最佳方法是什么?
答案 0 :(得分:0)
要获得预制件的大小,您需要获取预制件所具有的渲染器信息。
要执行此操作,您必须在其层次结构中获取组件,您可以使用 GetComponentInChildren< Renderer >()
来执行此操作获得渲染器后,可以使用 renderer.bounds.size
访问边界大小这是 Vector3 ,它具有对象的尺寸,高度为 Y分量。
预制件中可能有多个渲染器,因此您需要使用 GetComponentsInChildren< 渲染器>()来完成所有渲染器。并使用 bounds.Encapsulate
计算所有边界的总和var renderer = target.GetComponentInChildren<Renderer>();
var height = renderer.bounds.size.y;