(统一)快速单击以加速对象(否则减速)

时间:2018-09-26 00:42:51

标签: unity3d button mouse

我正在尝试一个按钮,当您单击该按钮时,每次单击都会使速度逐渐增加。当您停止单击时,它开始变慢。我尝试了各种方法,包括:刚体。速度(因为对象是运动学的,所以不起作用),变换,变换,变换,移动位置。任何帮助将不胜感激,因为我需要快速解决这个问题。

编辑:被单击的按钮是一个精灵。

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;
}

1 个答案:

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