【问题标题】:Another way for zooming in Unity放大 Unity 的另一种方法
【发布时间】:2021-07-21 12:23:33
【问题描述】:

当我在线搜索放大 Unity 时,到目前为止我遇到的所有帖子都告诉我更改相机的 fieldOfView 属性。

但是当我在 Unity 编辑器中对其进行测试时,当 FOV 变得太大时,场景对象会回到地平线,

快照 1

1

快照 2

2

(抱歉链接,我还不能发布图片。)

尽管它设法复制了缩放的效果,但对象离得太远而无法使用。

我曾尝试前后移动相机,但结果与更改 FOV 的结果相同。

我还尝试将整个场景放入一个空的 GameObject 中,并在缩放时更改其比例。

虽然它按我的预期工作,但它会破坏游戏中的机制,例如距离等。

因此我不得不改变很多其他的事情。

有没有其他方法可以让物体停留在场景中间,同时达到缩放的效果?

快照 3

3

非常感谢您的帮助。

非常感谢!

【问题讨论】:

  • 不过度怎么样? ^^ 为什么不简单地前后移动相机呢?
  • @derHugo 我试过了,结果和改变 FOV 的效果一样。我还想过一些疯狂的事情,比如将“整个场景”作为一个游戏对象并改变它的比例!现在这就是你所谓的“过头”了! ^o^|||
  • 但是您的对象仍然 IS 在屏幕的中心......只是很远......有点不清楚结果实际上应该是什么样子......
  • @derHugo 很抱歉造成混乱,请参阅编辑。
  • 您能否附上一张图片,说明您正在努力实现的目标和不想要的目标?样机或草图会很有帮助。不幸的是,“变焦”正是人们已经回答的——将相机移近,改变视野——这显然不是你想要的。

标签: unity3d zooming pinchzoom


【解决方案1】:

有很多方法可以做到这一点。要将缩放限制在某个值,您可以使用 Range。

[Range(42f,100f)]
public float zoom;

然后您可以将您的fieldOfView 连接到Update() 中的zoom 值。

private void Update()
{
    Camera.main.fieldOfView = zoom;
}

如果您希望您的相机仅放大固定目标,您可以使用:

Camera.main.transform.LookAt(player, Vector3.up);

【讨论】:

  • 非常感谢您的回答,但我认为您误解了我的问题。问题不在于 FOV 是否被固定,而在于 FOV 变大时场景中的所有内容都会移回地平线。这不是我想要的。无论您放大多少,我都希望它“保持在场景的中心”。
  • 你的意思是你想让相机放大固定目标?
  • @PiggyChu620 在场景中向前或向后移动相机有什么问题?不要改变fieldOfView 只是改变相机的变换
  • @ArtZolinaIII 我曾尝试过LookAt,它仍然产生了相同的结果——物体移回了地平线。
  • @PiggyChu620 尝试将相机投影更改为正交。
猜你喜欢
  • 2022-01-26
  • 2022-12-04
  • 2021-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-30
  • 2013-02-10
相关资源
最近更新 更多