【问题标题】:How to make the camera move up如何让相机向上移动
【发布时间】:2014-01-30 00:31:50
【问题描述】:

我正在做一些 2D 平台游戏测试,并想弄清楚当保持向上的轴时如何使相机向上移动,直到其 float = 1

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

}

我被困在这里了。

【问题讨论】:

  • 如果您使用 XNA 或其他框架,请相应地标记问题。 C# 不仅仅用于游戏。
  • 我正在使用 Unity 和 MonoDevelop。
  • ..."请相应地标记问题。"我已经为你这样做了。
  • 好的。否则你会帮我吗?

标签: c# camera unity3d


【解决方案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 或类似的东西。

【讨论】:

    【解决方案2】:

    相机连接到GameObjectTransform 是该对象物理表示的一部分,包含对象的位置、旋转和缩放。 所以如果你想移动相机,只需改变它的变换位置,像这样:

    Camera.current.transform.position = someVector3;
    

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

    【讨论】:

      【解决方案3】:

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

      将此脚本添加到您的相机:

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

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

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

      if (verticalAxis > 0 && verticalAxis < 1)
      

      if (verticalAxis == 1)
      

      如果你想在它高于 0 时移动它,你可以将它更改为:

      if (verticalAxis > 0)
      

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

      【讨论】:

        猜你喜欢
        • 2012-07-24
        • 1970-01-01
        • 2021-03-11
        • 1970-01-01
        • 2013-08-08
        • 1970-01-01
        • 2020-12-30
        • 2014-08-17
        • 1970-01-01
        相关资源
        最近更新 更多