Задать вопрос
@fadik22

Что делать если персонаж не прыгает в unity 2d?

Пробовал все способы но не работает прыжок, Передвижение работает отлично.
Код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class character : MonoBehaviour
{
    private Rigidbody2D rb;
    public float speed = 0.5f;
    private Vector2 moveVector;
    public float jumpForce = 5.0f;
    
    void Awake()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void FixedUpdate()
    {
        MoveCharacter();
        Jump();
    }
    void MoveCharacter()
    {
        moveVector.x = Input.GetAxis("Horizontal");
        rb.MovePosition(rb.position + moveVector * speed * Time.deltaTime);
    }
    void Jump()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            rb.AddForce(new Vector2(1, jumpForce), ForceMode2D.Impulse);
        }
    }
}
  • Вопрос задан
  • 137 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
@DrRen7
Все считывания клавиш надо делать в Update(). По простому FixedUpdate() не всегда считывает нажатие клавиш,зажатия и векторные значения в принципе допустимы но точность управления снизится

void Update()
    {
       
       if (Input.GetKeyDown(KeyCode.Space)) Jump();
    }
void Jump()
    {
           rb.AddForce(transform.up*jumpForce, ForceMode2D.Impulse);
    }

rb BodyType=>Dynamic
если не будет работать то надо поиграть с весом объекта
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы