将键盘抽象转化为信号控制游戏
1.VS中按Alt键往下拉可以同时输入重复数值,帅
2.Dup = Input.GetKey(keyUp) - Input.GetKey(keyDown); 这种无法用- 来操作,应该把bool值转换成可操作+ -的用
Dup = (Input.GetKey(keyUp)?1.0f:0) - (Input.GetKey(keyDown)?1.0f:0); [()?():() 三元符号 ]
你要将key转换为信号,转换为x轴,y轴的信号
3.要用慢慢递增的方式把wasd的数值改为1,-1,-1,1 而不是瞬间变化很重要,用smootdamp
Dup = Mathf.SmoothDamp(Dup, targetDup, ref velocityDup, 0.1f);
//Variable
public string keyUp;
public string keyDown;
public string keyLeft;
public string keyRight;
public float Dup;
public float Dright;
public bool inputEnabled = true;
private float targetDup;
private float targetDright;
private float velocityDup;
private float velocityDright;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
targetDup = (Input.GetKey(keyUp)?1.0f:0) - (Input.GetKey(keyDown)?1.0f:0);
targetDright = (Input.GetKey(keyRight) ? 1.0f : 0) - (Input.GetKey(keyLeft) ? 1.0f : 0);
if(inputEnabled == false)
{
targetDup = 0;
targetDright = 0;
}
Dup = Mathf.SmoothDamp(Dup, targetDup, ref velocityDup, 0.1f);
Dright = Mathf.SmoothDamp(Dright, targetDright, ref velocityDright, 0.1f);
}
设置wasd 然后设置个移动缓冲,衰减wasd值使移动的更加顺畅。