【问题标题】:Rotate camera in function of direction of ball根据球的方向旋转相机
【发布时间】:2015-12-11 23:35:45
【问题描述】:

我正在制作一个带有 Unity3D 的迷宫,其中一个球可以滚动并找到出路。因为球可以躲在墙后,所以我想根据球的方向将相机旋转到更好的位置。

举个例子:球向你滚来(在黑色箭头的方向)。所以你可以看到或更好看不到,是球滚到的地方。所以摄像机必须转向球的另一侧。如果球从你身边滚开,相机必须转向原来的位置。

现在的问题是,我知道如何更换摄像头但无法更换方向?谁能帮我这个?我刚开始使用 Unity3D。我使用 C# 背后的语言。

这是另一种最好旋转相机的情况。 (上:是场景,在游戏模式下)。

【问题讨论】:

    标签: c# unity3d camera


    【解决方案1】:

    您可以使用它根据速度和球方向的旋转来设置球后面的相机位置

    Vector3 offset = new Vector3(1,1,0);
    transform.position = ball.transform.position - ball.GetComponent<Rigidbody>().velocity / ball.GetComponent<Rigidbody>().velocity.magnitude + offset;
    transform.LookAt (ball.transform.position);
    

    【讨论】:

    • 为了减少晕动病,也许可以将其设置为相机的曲线目标,而不是立即设置?
    • 不完全是我想要的,我希望相机可以旋转 360°。使用您的代码,这是不可能的。
    • 我也有这个错误:transform.position assign attempt for 'Main Camera' is not valid. Input position is { NaN, NaN, NaN }. 在你的代码的第二行。
    • 我测试了这段代码,它运行良好,没有任何错误。我不明白你想用 360º 表达什么,你能解释得更好吗?
    • @Luïs 我认为您想要的词是“想要”,而不是“将”。您能否详细说明为什么您认为这不会向任何方向旋转相机?
    猜你喜欢
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 2015-04-18
    相关资源
    最近更新 更多