【问题标题】:Unity: How to move the camera by a specific amount?Unity:如何将相机移动特定的量?
【发布时间】:2019-12-28 11:52:12
【问题描述】:

你好!我正在尝试制作一款类似于《以撒的结合》的地下城游戏。我正在尝试制作一个脚本,当玩家进入另一个房间时,它将将相机向下移动一个特定的量。现在,我专注于当玩家从顶部进入房间时将移动相机向下的脚本部分。

在查看了 Unity 网站上的许多其他 StackOverflow 和问题后,我编写的将相机向下移动到从顶部进入房间的代码行是 Camera.main.transform.position = new Vector3(0, -10, 0);。这条线执行后,除了设置的背景颜色之外,相机不再渲染任何东西。我也关心这行代码,因为我认为它不会将相机向下移动 10 个点,而是将其设置到位置0, -10, 0,但我不确定。

我也尝试从相机获取各个点(例如 Camera.main.transform.position.x += 10;),但 Visual Studio 和 Unity 给了我错误:Unable to get the return values of position.x because they are not variables。我一直试图解决这个问题很长时间,但由于某种原因无法解决。谢谢!

【问题讨论】:

    标签: c# unity3d camera


    【解决方案1】:

    我也关心这行代码,因为我认为它不会将相机向下移动 10 个点,而是将其设置为位置 0,-10,0,但我不确定。

    是的,这确实会将位置设置为 0、-10、0,因为您将位置设置为新的 Vector3,而不参考旧位置。


    您应该改用 Camera.main.transform.Translate(0, -10, 0),这会将相机在 y 轴上相对向下移动 10 个点到其当前位置。

    编辑: 相机将只渲染背景颜色,因为(我假设)一旦相机的位置设置为 (0, -10, 0),相机的视野中就没有物体,因此只有背景是可见的。

    【讨论】:

    • 谢谢!不过,我很困惑。其他代码如何使相机不渲染任何东西。诡异的。不过再次感谢!
    • 因为可能在 0, -10, 0 没有世界
    猜你喜欢
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多