我使用标准的Input.GetAxis("水平")和一些简单的Update()循环上的Input.GetKeyDown。
我的mac book pro的标准键盘上的所有工作。
将外部USB键盘连接到mac book pro,同时按住" B"和" V"没有检测到左箭头,轴是水平"不起作用。
另外,如果我持有" B"和左箭头" V"未检测到密钥。
任何解决方法的想法?
使用此代码复制
using UnityEngine;
using System.Collections;
public class TestKey : MonoBehaviour {
string inputState;
// Update is called once per frame
void Update ()
{
inputState = string.Format(
"\nAxis:{0}\nB:{1}\nV:{2}"
,Input.GetAxis("Horizontal")
,Input.GetKey(KeyCode.B)
,Input.GetKey(KeyCode.V)
);
}
void OnGUI()
{
GUI.Label(new Rect(0,0,Screen.width,Screen.height),inputState);
}
}

答案 0 :(得分:1)
听起来你的代码请求中有错误,发布你的代码,你是否在GetAxis中改变了?..当你点击另一个键而没有移动到下一部分时,你的更新循环可能会停止循环..试着看看这里
using UnityEngine;
using System.Collections;
[System.Serializable]
public class Boundary
{
public float xMin, xMax, zMin, zMax;
}
public class PlayerController : MonoBehaviour
{
public float speed;
public float tilt;
public Boundary boundary;
void FixedUpdate ()
{
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
rigidbody.velocity = movement * speed;
rigidbody.position = new Vector3
(
Mathf.Clamp (rigidbody.position.x, boundary.xMin, boundary.xMax),
0.0f,
Mathf.Clamp (rigidbody.position.z, boundary.zMin, boundary.zMax)
);
rigidbody.rotation = Quaternion.Euler (0.0f, 0.0f, rigidbody.velocity.x * -tilt);
}
}
答案 1 :(得分:0)
最后我发现这不是Unity相关问题:苹果键盘的硬件限制,不能同时跟踪多个键。
我连接另一个高端键盘(称为N-Key翻转),一切正常。
使用此链接获取有关翻转功能的参考信息: