4

我正在用 C# 制作一个 2d 统一游戏。现在,我正在尝试使相机旋转,并且正在使用以下代码:

rotateX = Random.Range (0, 50);
Camera.main.transform.eulerAngles = Vector3(0,0,rotateX);

但是每次我尝试运行游戏时,它都会给我一个错误。有人对我如何(平滑地)左右旋转相机有提示吗?

4

4 回答 4

7

您可以通过将代码更改为以下内容来消除错误:

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);
}

平稳旋转相机。只需将第一个参数更改为您要旋转的轴。

于 2014-11-09T14:08:58.317 回答
3

不要使用 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

于 2014-11-09T14:04:24.940 回答
1

该错误是因为您缺少new初始化程序。

rotateX = Random.Range (0, 50);
Camera.main.transform.eulerAngles = new Vector3(0,0,rotateX); //<--- put 'new' before 'Vector3'
于 2015-08-11T17:23:13.253 回答
1

最简单的方法是将该代码放入您的游戏对象中,添加您希望它旋转的当前相机。

public class swipebutton : MonoBehaviour

{公共摄像头;

void Update()
{

    cam.transform.Rotate(Vector3.up, 20.0f * Time.deltaTime);
}

}

于 2017-09-21T11:32:11.750 回答