Создание прыжка как в игре google динозавр в unity
В общем нужно сделать прыжок как в игре google динозавр в unity. При быстром нажатии на кнопку пробел, происходит маленький прыжок, а при долгом нажатии высокий прыжок. Еще, нужно сделать динамический прыжок зависящий от долготы нажатия кнопки, при этом, даже если кнопка была нажата на милесекунду, происходил прыжок на определенную высоту, и если кнопка прыжка зажата слишком долго, то этот прыжок будет усиливаться. Можете пожалуйста привести пример кода если не трудно. Спасибо
Ответы (1 шт):
Ничего сложного. Нужно запустить корутину, которая будет отсчитывать время, когда клавиша будет нажата.
У меня в зависимости от количества секунд увеличивается сила прыжка.
только здесь не пробел, а левая кнопка мыши у меня, но, думаю, несложно будет заменить
public class PlayerController : MonoBehaviour
{
private Rigidbody2D _rb;
private Coroutine _timer;
private float _seconds;
public int forceUp = 100, forceForward = 50;
private void Start()
{
_rb = GetComponent<Rigidbody2D>();
}
private void Update()
{
if (Input.GetMouseButton(0))
{
_timer = StartCoroutine(CountOfSeconds());
}
if (Input.GetMouseButtonUp(0))
{
StopCoroutine(_timer);
_rb.AddForce(new Vector2(forceForward * seconds, forceUp * seconds));
_seconds = 0;
}
}
private IEnumerator CountOfSeconds()
{
_seconds++;
yield return new WaitForSeconds(1f);
}
}