Unity3d 按键时的行驶距离
在下面的代码中,我想管理按下左箭头键时的行程量,这取决于它是否在下半程。 物体在第一次按下时一直向左移动,而不是根据上述条件将其分成3或4部分,我做错了什么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(
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。您使用的是模拟输入设备吗?在标准键盘上没有“一半向下”这样的东西,它要么向下,要么不向下,没有一半。你还应该包括更多的代码,我们不知道这是什么
或一半是什么。哦,半路向下,我的意思是如果移动的汽车穿过道路的一半宽度:)