Как заставить игрока прыгать только один раз за кадр?
Я смотрю видео "Imphenzia", я вижу, что мой и его код одинаковы, но он прыгает только один раз, а мой прыгает несколько раз и ломает игру. ссылка на его видео находится здесь
[УДАЛЕННЫЙ]
Что я уже пробовал:
using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; using UnityEngine; public class Player : MonoBehaviour { private bool JumpKeyWasPressed; private float HorizontalInput; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { JumpKeyWasPressed = true; } HorizontalInput = Input.GetAxis("Horizontal"); } void FixedUpdate() { if (JumpKeyWasPressed) { GetComponent<Rigidbody>().AddForce(Vector3.up * 5, ForceMode.VelocityChange); JumpKeyWasPressed = false; } } }
F-ES Sitecore
GetKeyDown будет возвращать true только один раз за кадр, поэтому я не вижу, как он будет делать это несколько раз, если у вас нет каких-то сумасшедших проблем с fps. Попробуйте изменить строку на
если (!JumpKeyWasPressed && Input.GetKeyDown(KeyCode.Space))
и посмотрим, будет ли это иметь значение.