(Единство) Быстро нажмите, чтобы ускорить объект (в противном случае замедлить) - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь получить кнопку, которая, когда вы нажимаете на нее, заставляет скорость постепенно увеличиваться при каждом нажатии.Когда вы перестаете щелкать, он начинает замедляться.Я пробовал различные методы от solidbody.velocity (не работало, потому что объект был кинематическим), чтобы преобразовать. Перевести, чтобы преобразовать. Перемещение.Буду признателен за любую помощь, так как мне нужно быстро это выяснить.

РЕДАКТИРОВАТЬ: нажатие кнопки является спрайтом.

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 голосов
/ 26 сентября 2018

У вас может быть число с плавающей точкой, которое будет увеличиваться каждый раз, когда вы нажимаете эту кнопку (например, множитель), и 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;
...