从技术上讲,场景确实没有边框。您需要在游戏中以某种方式定义边框,然后在相机的Update()函数中使用类似Mathf.Clamp(value, min, max)的内容约束相机的位置。
如何定义边框?它取决于你。一些想法:
- 硬编码用于夹住相机的脚本中的值。可能是最快的选择,但不灵活
- 在相机脚本上创建公共参数,用于设置X和Y方向的最小和最大位置
- 如果您有背景图片:使用其范围来定义相机的范围
- 在场景中创建用于定义场景的最小和最大范围的空对象。把你的" min"左上角的对象,以及" max"右上角的物体。将其连接到相机脚本,然后使用这些位置查看您是否在任何给定方向上走得太远。这样做的主要原因是它的视觉效果。
- (较慢,但动态)如果场景中的所有内容都使用物理,您可以搜索整个场景中的每个碰撞器组件,然后找到每个方向上最远的范围。然而,这可能会非常缓慢(所以你只想做一次),它需要一段时间来编码,你可能想要手工调整边界反正。