我正在 Unity 中创建一个 2D 块堆叠游戏,您可以在其中从 x 轴平移生成器对象实例化块。我面临的问题是当堆栈变得太高并且靠近产卵器时,我需要在 Y 轴上向上移动产卵器和游戏摄像机。我正在测量一堆预制件以使用 Bounds 获得它们的高度所以我知道何时移动我的相机和生成器。我面临的问题是当我调用我的 GetMaxBounds 函数并封装它没有添加到我的 parentBounds 变量的附加点时。我的 parentBounds.max.y 永远不会增加。我是编程和 C# 的新手。提前致谢。
if (Input.GetMouseButtonDown(0)) {
Instantiate (fallingBrick, spawnPosObj.transform.position, Quaternion.identity, parentStack.transform);
var parentBounds = GetMaxBounds (parentStack);
Debug.Log (parentBounds.max.y);
}
}
Bounds GetMaxBounds(GameObject g) {
var b = new Bounds(g.transform.position, Vector3.zero);
foreach (Renderer r in g.GetComponentsInChildren<Renderer>()) {
b.Encapsulate(r.bounds);
}
return b;
}