Новичок
-
Автор темы
- #1
Не судите строго за код, я недавно начал программировать.
Как мне в этом коде сделать прыжок? (Кнопкой на UI. Игра на телефон)
Как мне в этом коде сделать прыжок? (Кнопкой на UI. Игра на телефон)
C#:
public class playerMovement : MonoBehaviour
{
public GameManager gm;
public Rigidbody rb;
public Vector3 dir;
public Joystick joystick;
bool isGrounded;
public bool isGround;
public float runSpeed = 500f;
public float strafeSpeed = 500f;
public float jumpForce = 15f;
public string sceneName;
protected bool strafeLeft = false;
protected bool strafeRight = false;
protected bool doJump = false;
void OnCollisionEnter(Collision collision)
{
if(collision.collider.tag == "Obstacle")
{
gm.EndGame();
}
if (collision.gameObject.CompareTag("Ground"))
{
isGrounded = true;
}
}
public void Jump()
{
if (isGrounded == true)
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
}
}
void Update()
{
if(Input.GetKeyDown("space") && isGrounded == true)
{
isGrounded = false;
doJump = true;
}
if(transform.position.y < -40f)
{
gm.EndGame();
}
}
void FixedUpdate()
{
//rb.AddForce(-runSpeed * Time.deltaTime, 0, 0);
rb.MovePosition(transform.position + Vector3.forward * runSpeed * Time.deltaTime);
if(strafeLeft)
{
rb.AddForce(-strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
if(strafeRight)
{
rb.AddForce(strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
if(doJump)
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
doJump = false;
}
rb.velocity = new Vector3(joystick.Horizontal * runSpeed, rb.velocity.y);
}
}