【问题标题】:Unity automatically rotate camera on slopes up/downUnity 自动在斜坡上/下旋转相机
【发布时间】:2013-08-05 19:19:29
【问题描述】:

我有一个玩家以第一人称在 Unity 地形上四处走动,我想将相机控制限制在 y 轴(左/右)并自动旋转 x 轴的相机。 所以向上/向下看应该不需要玩家输入,这取决于你是上坡还是下坡。

我不太确定要寻找什么。您可能可以使用 Raycast 来做到这一点,但我想有更简单的方法吗?

【问题讨论】:

  • 如果你有控制器,你也可以得到你击中的对撞机和它的正常值。但我不知道你的具体设置是什么。 docs.unity3d.com/Documentation/ScriptReference/…
  • 是的,应该写我使用字符控制器进行移动。
  • 使用yourTerrain.terrainData.GetInterpolatedNormal(normalizedPlayerPosition) 获取地形法线。禁用相机上的 MouseLook 脚本。在您的 FPC 上,在 LateUpdate() 中,将 FPC 方向同步到正常:transform.rotation = Quaternion.LookRotation(Vector3.Cross(transform.right, normal), normal)。修改 FPS 上的 MouseLook 脚本以围绕这个新的 y 轴旋转:transform.RotateAround(transform.up, Input.GetAxis("Mouse X"))。您也可以使用Quaternion.Slerp(transform.rotation, lookRotation, (Time.deltaTime*2f)) 平滑旋转
  • 如果你把这个写成答案而不是评论,我会接受。

标签: camera unity3d terrain unityscript


【解决方案1】:

有一些内置的相机脚本。您需要导入统一拥有的标准资产。还有一些你可以修改的不同的,但它们确实很好地跟随玩家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    相关资源
    最近更新 更多