Unity3d 按键时的行驶距离

Unity3d 按键时的行驶距离,unity3d,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(

在下面的代码中,我想管理按下左箭头键时的行程量,这取决于它是否在下半程。 物体在第一次按下时一直向左移动,而不是根据上述条件将其分成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?
}

因为您无法检查按键按下的距离,如评论中所述。然后我会测量一个键被按下的时间。您可以开始计算钥匙按下的时间,并在松开后停止计数。然后,您可以使用该时间来确定对象可以移动多远

如何计算按键时间:

float count = 0.0f;

void Update()
{
     if(Input.GetKey("a"))
         count += Time.deltaTime;

     else if(Input.GetKeyUp("a"))
         count = 0.0f;
}

松开钥匙后,代码会将计数重置为0。

您使用的是模拟输入设备吗?在标准键盘上没有“一半向下”这样的东西,它要么向下,要么不向下,没有一半。你还应该包括更多的代码,我们不知道这是什么
一半是什么。哦,半路向下,我的意思是如果移动的汽车穿过道路的一半宽度:)