0
Я пытаюсь сделать игру, в которой игрок контролирует левое и правое движение мяча (like rolling sky). Мяч должен двигаться вперед все время с постоянной скоростью. До сих пор я пробовал следующее, но я могу контролировать мяч влево и вправо, когда он находится в воздухе (прыгает).Держите постоянную скорость в одном направлении
Любая помощь или ссылки были бы очень оценены.
float forwardVelocity = 20.0f
void Update()
{
if (gameConfig.currentGameState == GameConfig.CurrentGameState.LevelInPlay)
{
handleMovement();
handleJumping();
deathDetection();
}
}
void handleJumping()
{
if ((Input.GetMouseButtonDown(0) || Input.GetButtonDown("Jump")) && isGrounded)
{
rigidBody.velocity = new Vector3(rigidBody.velocity.x, jumpHeight, rigidBody.velocity.z);
jumpSound.Play();
}
}
void handleMovement()
{
var moveHorizontal = Input.GetAxis ("Horizontal");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, 0.0f);
rigidBody.AddForce (movement * rotationSpeed);
if (rigidBody.velocity.z < forwardVelocity)
{
rigidBody.velocity = new Vector3(rigidBody.velocity.x, rigidBody.velocity.y, forwardVelocity);
}
}
Я думаю, что это означает, что вы добавляете силу, а затем переопределяете ее перед обновлением скорости. –
Хороший улов. Я попытаюсь переместить их и посмотреть, поможет ли это. благодаря – Harg