我正在用 C# 制作一个 2d 统一游戏。现在,我正在尝试使相机旋转,并且正在使用以下代码:
rotateX = Random.Range (0, 50);
Camera.main.transform.eulerAngles = Vector3(0,0,rotateX);
但是每次我尝试运行游戏时,它都会给我一个错误。有人对我如何(平滑地)左右旋转相机有提示吗?
我正在用 C# 制作一个 2d 统一游戏。现在,我正在尝试使相机旋转,并且正在使用以下代码:
rotateX = Random.Range (0, 50);
Camera.main.transform.eulerAngles = Vector3(0,0,rotateX);
但是每次我尝试运行游戏时,它都会给我一个错误。有人对我如何(平滑地)左右旋转相机有提示吗?
您可以通过将代码更改为以下内容来消除错误:
void Update () {
float rotateX = Random.Range (0, 50);
transform.eulerAngles = new Vector3(0,0,rotateX);
}
并将包含它的脚本组件附加到相机。但是它一直在随机旋转。
我不确定,从这个问题来看,你想要什么样的轮换。但是你可以使用例如这个
void Update () {
transform.Rotate(Vector3.forward, 10.0f * Time.deltaTime);
}
平稳旋转相机。只需将第一个参数更改为您要旋转的轴。
不要使用 Camera.main。为您的相机编写一个类,然后将其添加到场景中的相机中。像这样使用 transform.rotation :
void Update ()
{
transform.rotation = Quaternion.Euler(y, x, z);
transform.position = Quaternion.Euler(y, x, z);
}
有关更多信息,请参见: http ://wiki.unity3d.com/index.php?title=MouseOrbitImproved
该错误是因为您缺少new
初始化程序。
rotateX = Random.Range (0, 50);
Camera.main.transform.eulerAngles = new Vector3(0,0,rotateX); //<--- put 'new' before 'Vector3'
最简单的方法是将该代码放入您的游戏对象中,添加您希望它旋转的当前相机。
public class swipebutton : MonoBehaviour
{公共摄像头;
void Update()
{
cam.transform.Rotate(Vector3.up, 20.0f * Time.deltaTime);
}
}