繁体   English   中英

如何平稳地旋转相机?

[英]How do I smoothly rotate the camera in unity?

我正在与C#进行二维统一游戏。 现在,我正在尝试使相机旋转,我正在使用此代码:

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

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

public class swipebutton : MonoBehaviour

{public Camera cam;

void Update()
{

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

}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM