在下面的代码中,我想管理按下左箭头键时的行程距离,具体取决于它是否在一半的位置。 根据上述情况,物体在第一次按下时一直向左移动而不是移动被分成3或4个部分,我在哪里做错了?
var diff = Mathf.Abs(this.transform.position.x - r.renderer.bounds.min.x);
print("diff" + diff);
var lessdistancetotravel = diff/4;
var moredistancetotravel = diff/3;
if(this.transform.position.x > half)
{
print ("greater than half while moving left");
print("currentpos" + this.transform.position.x); //gives 0.6
print("moredistance " + moredistancetotravel);//gives 0.69
this.transform.position = new Vector3 (this.transform.position.x - moredistancetotravel,
this.transform.position.y,
this.transform.position.z);
print("updated" + (this.transform.position.x - moredistancetotravel)); //gives -0.78,How come?
}
答案 0 :(得分:1)
由于您无法检查按下按键的距离,因为评论中提到了Jerdak。然后我会测量按下按键的时间。您可以开始计算密钥已关闭的时间,并在密钥释放后停止计数。然后,您可以使用该时间来确定物体的行进距离。
如何计算按下按键的时间:
float count = 0.0f;
void Update()
{
if(Input.GetKey("a"))
count += Time.deltaTime;
else if(Input.GetKeyUp("a"))
count = 0.0f;
}
释放密钥后代码重置为0。