我正在与C#进行二维统一游戏。现在,我正在尝试使相机旋转,我正在使用此代码:
rotateX = Random.Range (0, 50);
Camera.main.transform.eulerAngles = Vector3(0,0,rotateX);
但每次我尝试运行游戏时,都会给我一个错误。 任何人都有关于如何(平滑地)将相机从一侧旋转到另一侧的提示?
答案 0 :(得分:6)
您可以通过将代码更改为:
来消除错误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);
}
平稳旋转相机。只需将第一个参数更改为围绕要旋转的轴的轴。
答案 1 :(得分: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
答案 2 :(得分:1)
最简单的方法是将该代码放入游戏对象中,添加您想要旋转的当前相机。
public class swipebutton : MonoBehaviour
{ 公共相机凸轮;
void Update()
{
cam.transform.Rotate(Vector3.up, 20.0f * Time.deltaTime);
}
}
答案 3 :(得分:0)
错误是因为您缺少new
初始值设定项。
rotateX = Random.Range (0, 50);
Camera.main.transform.eulerAngles = new Vector3(0,0,rotateX); //<--- put 'new' before 'Vector3'