我正在尝试一个按钮,当您单击该按钮时,每次单击都会使速度逐渐增加。当您停止单击时,它开始变慢。我尝试了各种方法,包括:刚体。速度(因为对象是运动学的,所以不起作用),变换,变换,变换,移动位置。任何帮助将不胜感激,因为我需要快速解决这个问题。
编辑:被单击的按钮是一个精灵。
void OnMouseDown() {
clicked = true;
}
void ifClicked(){
if (clicked) {
speed += 0.5f;
gameObject.transform.Translate(Vector3.right * speed * Time.deltaTime);
StartCoroutine("Decelerate");
}
}
IEnumerator Decelerate() {
yield return new WaitForSeconds(1);
speed -= 0.5f;
}
答案 0 :(得分:2)
您可能会有一个浮动值,该浮动值会在您每次单击该按钮(例如乘数)时增加,并且可以使用该乘数来转换特定游戏对象的transform.position
。
// A button could call this function from OnClick()
public void Multiply()
{
// where multiplier is a member variable of the class you're using this in
multiplier *= 1.1f;
}
// And add these into Update()
transform.position += movementVector * multiplier * Time.deltaTime;
multiplier *=0.95f;