Unity - 检测键盘输入

时间:2016-02-19 03:38:47

标签: keyboard 2d unity5

我是Unity的新手,并且一直在线查找大量的教程/指南。我的问题是,由于某些原因,当我使用下面的代码时,它不会检测键盘是否被点击。也许我正在做错误的键盘检测。这是我的代码:

function getCSVText(evt)  {

  if (currentChecklistCountry)  {

    var form = $('<form method="post" action="../php/sendCSV.php?country=' + currentChecklistCountry + '"></form>');

    $('body').append(form);

    form.submit();

    form.remove();
  }
  else  checklistCountryButton.classList.add("needsAttention");
}

function openChecklistPage()  {

   if (!currentChecklistCountry)  {
       checklistCountryButton.innerHTML = "Select Country";
       checklistCountryButton.classList.add("needsAttention");
       return;
    }

   if (gNumDays == undefined) gNumDays = 12;

   vars = "?country="     + currentChecklistCountry;
   vars += "&num_days="   + gNumDays;
   vars += "&line_nos="   + lineNumbers.checked;
   vars += "&left_check=" + leftCheck.checked;
   vars += "&endemics="   + showEndemics.checked;
   vars += "&sci_names="  + !sciNames.checked;
   vars += "&italics="    + !italics.checked;

   window.open( '../php/makePDF.php' + vars, '_blank' );
}

1 个答案:

答案 0 :(得分:0)

您的输入代码是正确的,但仍有一些不正确的地方。首先,你在任何函数之外写了一个初始化器(静态方法)。请记住,当您在Unity3d C#中执行此操作时,它始终会给您一个警告/错误。

  

如果您使用的是C#,请不要在构造函数或字段初始值设定项中使用此函数,而是将初始化移至Awake或Start函数。

首先在这两种函数中移动那种行。

第二件事你得Vector3并试图用它作为参考,这意味着你得到了Vector3形式的位置参考,并且该变量中的每个变化都是有效的,这不是如果不是这样的话。

但是,你可以通过获取TransformGameObject来实现,他们会为你做。

第三件也是最后一件事,你试图直接改变Vector3组件(在你的情况下为“x”),这对Unity来说也是不可接受的。您可以做的是使用new Vector3指定位置或创建单独的Vector3变量,更改它,然后将其指定到位置。

因此,在所有这些地址之后,您的代码应该如下所示,

using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour
{
    Transform player;

    // Use this for initialization
    void Start ()
    {
        player = GameObject.FindGameObjectWithTag ("Player").transform;
    }

    // Update is called once per frame
    void Update ()
    {

        if (Input.GetKeyDown (KeyCode.D)) {

            // Remove one of these two implementations of changing position

            // Either
            Vector3 newPosition = player.position;
            newPosition.x += 0.01f;
            player.position = newPosition;

            //Or
            player.position = new Vector3 (player.position.x + 0.01f, player.position.y, player.position.z);
        }
    }
}