按下键时的行程距离

时间:2014-08-16 12:28:09

标签: unity3d

在下面的代码中,我想管理按下左箭头键时的行程距离,具体取决于它是否在一半的位置。 根据上述情况,物体在第一次按下时一直向左移动而不是移动被分成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?
}

1 个答案:

答案 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。