C# 如何平稳地整体旋转相机?

C# 如何平稳地整体旋转相机?,c#,unity3d,unity3d-editor,C#,Unity3d,Unity3d Editor,我正在用C#制作一个2d unity游戏。现在,我正在尝试使相机旋转,并使用以下代码: rotateX = Random.Range (0, 50); Camera.main.transform.eulerAngles = Vector3(0,0,rotateX); 但每次我尝试运行游戏时,它都会给我一个错误。 有人知道如何(平稳地)将相机从一边旋转到另一边吗?不要使用camera.main。为摄影机编写一个类,然后将其添加到场景中的摄影机。像这样使用transform.rotation: v

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

rotateX = Random.Range (0, 50);
Camera.main.transform.eulerAngles = Vector3(0,0,rotateX);
但每次我尝试运行游戏时,它都会给我一个错误。
有人知道如何(平稳地)将相机从一边旋转到另一边吗?

不要使用camera.main。为摄影机编写一个类,然后将其添加到场景中的摄影机。像这样使用transform.rotation:

void Update () 
{
    transform.rotation = Quaternion.Euler(y, x, z);
    transform.position = Quaternion.Euler(y, x, z);
}
有关更多信息,请参见此:

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

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

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

错误是因为缺少新的
初始值设定项

rotateX = Random.Range (0, 50);
Camera.main.transform.eulerAngles = new Vector3(0,0,rotateX); //<--- put 'new' before 'Vector3'
public class swipebutton : MonoBehaviour
rotateX=Random.Range(0,50);

Camera.main.transform.eulerAngles=新矢量3(0,0,rotateX)// 最简单的方法是将代码放入游戏对象中,添加当前要旋转的相机

public class swipebutton : MonoBehaviour
{ 公共摄像机

void Update()
{

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

如果你在Update()中使用关键字“new”,是不是会慢慢填满RAM?我已经多年没有编写过任何C了,但我很确定垃圾收集器会在旧变量替换为新变量后删除旧变量。我知道这个新的东西对任何人来说都是不好的,比如C++背景。是的,C有一个垃圾收集器,它将负责删除未使用的对象。