如何让相机向上移动

时间:2014-01-30 00:31:50

标签: c# camera unity3d

我正在进行一些2D平台测试,想要弄清楚当向上轴保持时相机如何向上移动,直到它float = 1

float Look = (Input.GetAxis("VerticalAxis"));
print(Look);
if (Look >0 )
{

}

我被困在这里。

3 个答案:

答案 0 :(得分:1)

这有用吗:

float Look = 0.0f;

void Update() {
   if(Input.GetAxis("VerticalAxis") > 0) {
     if(Look < 1)
       Look += 0.001f;
   } else {
      if(Look > 0)
        Look -= 0.001f;
   }
   print(Look);
}

{代码未经测试}但是应该可以工作,如果按下向上按钮,它应该增加到1,每帧增加0.001,直到达到1,当它被释放时,它会再次下降,减少0.001帧,但你总是可以添加一个时间变量,所以它会顺利运行,比如使用Look + = Time.deltaTime / 0.1或类似的东西。

答案 1 :(得分:0)

相机附加到GameObject,其Transform是该对象物理表示的一部分,包含对象的位置,旋转和比例。 因此,如果您想移动相机,只需更改其变换的位置,如下所示:

Camera.current.transform.position = someVector3;

Camera.current是主摄像头的“快捷方式”。

答案 2 :(得分:0)

如果您希望相机向上移动直到垂直轴为1,您可以执行以下操作:

将此脚本添加到相机:

public float speed;

void Update()
{   
    float verticalAxis = Input.GetAxis("Vertical");
    if (verticalAxis > 0 && verticalAxis < 1)
    {
        transform.Translate(Vector3.up * Time.deltaTime * speed);
    }
}

如果您希望相机移动得更快,可以在检查器中替换公共变量“speed”(请记住将其设置为至少高于0的数字,否则相机不会移动)。

如果您希望在垂直轴为1时向上移动相机,则可以更改线条:

if (verticalAxis > 0 && verticalAxis < 1)

if (verticalAxis == 1)

如果您希望在高于0时移动它,可以将其更改为:

if (verticalAxis > 0)

就是这样,我希望这会有所帮助。