【问题标题】:Unity rotate camera behind playerUnity 在玩家身后旋转相机
【发布时间】:2016-08-10 15:52:13
【问题描述】:

我将相机设置为在 3D 空间中跟随玩家,与玩家的旋转无关。现在,当按下一个键时,我希望相机围绕玩家旋转(最好是 lerping),直到它面向与玩家相同的方向(基本上在玩家的背后)。

我可以使用 RotateAround 轻松控制旋转,但是当相机的旋转与玩家的旋转匹配时,我很难让它停止,而且我什至不知道如何开始包括缓动。我假设我必须使用 Slerp,但我不知道如何将它与 RotateAround 结合使用。

任何信息或资源将不胜感激。谢谢!

【问题讨论】:

  • 我不知道这是否会帮助你,但听起来你知道你需要去的角度和位置,对吧?您可以选择一个相对于玩家的点(FE:玩家内部的新游戏对象?)。不是最佳解决方案,但我认为这可行。
  • 听起来您已经尝试过解决这个问题 - 您可以在这里分享您最好的代码,以便我们查看它并确定如何最好地使其正常工作吗?
  • 我同意卡布拉。只需添加一个 G.O. 作为玩家的孩子并为其创建一个触发盒碰撞器。当相机进入它时,停止它。
  • 你真的不应该像这里建议的那样使用对撞机。您可以只计算摄像机观看方向和玩家观看方向之间的角度(如果这些对象位于不同的高度,请将它们投影到同一平面上)。当角度接近0时停止旋转。这个角度也可以用于控制旋转速度(用于缓动)
  • 我想我以前做过这样的事情,我可能会提供帮助,但我有 95% 的机会会修改您当前的相机跟随代码,这意味着我需要知道您的相机跟随代码在做什么。您是否将其位置设置为玩家的位置 + 每帧的常量 Vector3 ?您是否在使用转换层次结构的恶作剧?您使用的是标准资产脚本还是刚体关节或完全不同的东西?

标签: unity3d camera


【解决方案1】:

如何记住相机与玩家的偏移量并使用transform.LookAt(target) 调整位置,其中目标是玩家或他面前的一个点?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    相关资源
    最近更新 更多