当我按Q或E时,我试图让我的相机粘在我的播放器上转过45度但是由于某种原因我不能让它工作。即时通讯使用C#。
using UnityEngine;
using System.Collections;
public class Camera : MonoBehaviour
{
int rotatespeed = 3;
int rotationstart = 90;
public GameObject player;
private Vector3 offset;
// Use this for initialization
void Start()
{
offset = transform.position - player.transform.position;
}
// Update is called once per frame
void LateUpdate() {
transform.position = player.transform.position + offset;
}
void Update()
{
if (Input.GetKey("q"))
{
Camera.main.transform.rotation = Quaternion.Euler(x + 45 , y, z);
}
if (Input.GetKey("e"))
{
Camera.main.transform.rotation = Quaternion.Euler(x - 45, y, z);
}
}
}
答案 0 :(得分:3)
旋转时你应该乘以
if (Input.GetKey("q"))
{
Camera.main.transform.rotation *= Quaternion.Euler(45 , 0, 0);
}
if (Input.GetKey("e"))
{
Camera.main.transform.rotation *= Quaternion.Euler(-45, 0, 0);
}
然而,如果你想要左右使用以下
,这会让它向上和向下看 if (Input.GetKey("q"))
{
Camera.main.transform.rotation *= Quaternion.Euler(0, 45, 0);
}
if (Input.GetKey("e"))
{
Camera.main.transform.rotation *= Quaternion.Euler(0, -45, 0);
}
重要的附注
请记住,GetKey
会在用户按住时返回true,即使在非常快速的按下,也会导致相机因为仍然是多帧而失去控制。您最有可能想要使用GetKeyDown
,每次用户按下