我正在寻找一些统一的c#脚本来更新第一人称控制器 相机旋转变换。更具体地说,我正在运行动画,并且在动画结束时,我在fps相机变换上设置了“电影摄像机变换”,如何显示代码。对于位置变量,一切都很好。但是,旋转变量不能很好地工作。 该变量使变换旋转正确(相同的摄像机变换),但我看不到场景的变化。 “第一人称控制器旋转变换” 总是得到发生的最后一个旋转坐标。 我已经测试了很多旋转功能,比如Rotate(Vector3),rotation,localRotation,eulerAngles,localEulerAngles ....
Vector3 pos, roteuler;
public Camera fpscam, movie;
void getPosRot(){
roteuler = movie.transform.eulerAngles;
pos = movie.transform.position;
}
void Update(){
fps.transform.position = pos;
fps.transform.eulerAngles = roteuler;
}
答案 0 :(得分:0)
这是我的FPS脚本的摄影机部分:
public class PlayerController : MonoBehaviour
{
float RotateX;
float RotateY;
public GameObject Camera;
public float RotationSpeed = 3.0f;
public float MaxYAxis = 60.0f;
public float MinYAxis = -48.0f;
private void Start()
{
}
void Update()
{
Rotation();
}
void Rotation()
{
RotateX += Input.GetAxis("Mouse X") * RotationSpeed;
RotateY += Input.GetAxis("Mouse Y") * RotationSpeed;
RotateY = Mathf.Clamp(RotateY, MinYAxis, MaxYAxis);
Camera.transform.localRotation = Quaternion.Euler(-RotateY, 0f, 0f);
transform.rotation = Quaternion.Euler(0f, RotateX, 0f);
}
}