2013-08-05 42 views
1

我有一名玩家在第一人在Unity地形上行走,我想将摄像机控制限制在y轴(左/右)并自动执行相机旋转x轴。 因此,仰视/仰视不需要玩家输入,具体取决于你是否沿着斜坡走下坡路。Unity在斜坡向上/向下自动旋转摄像机

我不太确定要寻找什么。你可以用Raycast做,但我想有一个更简单的方法?

+1

如果你有一个控制器,你也可以得到你碰到的对撞机和它的正常。但我不知道你的具体设置是什么。 http://docs.unity3d.com/Documentation/ScriptReference/ControllerColliderHit-normal.html – Bart

+0

是的,应该写下我使用Character Controler进行移动。 – Dreiven

+2

用'yourTerrain.terrainData.GetInterpolatedNormal(normalizedPlayerPosition)'获得地形正常。 在相机上禁用MouseLook脚本。 在您的FPC上,在'LateUpdate()'中,将FPC方向同步到normal:'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))'来平滑旋转' – Richard

回答

0

有几个内置的相机脚本。你需要导入统一的标准资产。还有一些你可以修改的不同的,但是他们确实跟随了这个球员。