当用户移动相机时,如何使其不超出场景边界?

时间:2015-02-09 23:21:55

标签: c# unity3d camera

  1. 当我移动相机(触摸)时,我怎么能这样做?它不会超出场景边界?
  2. 如何通过触摸移动相机,使其严格移动场景部分,如幻灯片(滑动第一张幻灯片,另一张滑动另一张幻灯片),但不超出场景边界?
  3. 我正在制作的游戏有像迪斯科动物园游戏中的相机(我是新手)

1 个答案:

答案 0 :(得分:1)

从技术上讲,场景确实没有边框。您需要在游戏中以某种方式定义边框,然后在相机的Update()函数中使用类似Mathf.Clamp(value, min, max)的内容约束相机的位置。

如何定义边框?它取决于你。一些想法:

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