using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public Rigidbody rb;
public float runSpeed = 500f;
public float strafeSpeed = 500f;
public float jumpForce = 15;
protected bool strafeLeft = false;
protected bool strafeRight = false;
protected bool doJump = false;
void Update()
{
if (Input.GetKey("a"))
{
strafeLeft = true;
}
else
{
strafeLeft = false;
}
if (Input.GetKey("d")) // Исправлено на "d" для стрейфа вправо
{
strafeRight = true;
}
else
{
strafeRight = false;
}
if (Input.GetKeyDown(KeyCode.Space)) // Исправлено на KeyCode.Space для прыжка
{
doJump = true;
}
}
void FixedUpdate()
{
rb.AddForce(0, 0, runSpeed * Time.fixedDeltaTime); // Исправлено на AddForce и fixedDeltaTime
}
}
Исправления включают в себя:
Исправление неправильных условий для стрейфа влево и вправо (было Input.GetKey("a") для обоих случаев).
Исправление вызова Input.GetKeyDown("space") на Input.GetKeyDown(
KeyCode.Space ).
Исправление вызова AddForse на AddForce в методе FixedUpdate.
Исправление опечатки в вызове Time.deltaTime на Time.fixedDeltaTime в методе FixedUpdate.
Фото ошибки: https://disk.yandex.ru/i/5zWN8NS1akayBQ
Скрипт:
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public Rigidbody rb;
public float runSpeed = 500f;
public float strafeSpeed = 500f;
public float jumpForce = 15;
protected bool strafeLeft = false; protected bool strafeRight = false;
protected bool doJump = false;
void Update() {
if(Input.GetKey("a")) {
strafeLeft = true; } else
{ strafeLeft = false
}
if (Input.GetKey("a")) {
strafeRight = true; } else
{
strafeRight = false; }
if(Input.GetKeyDown("space"))
{ doJump = true;
} }
void FixedUpdate()
{ rb.AddForse(0, 0, runSpeed * Time.deltatime);
}}