@Kelni

Как сделать двойной прыжок в юнити3д для андроид?

как сделать двойной прыжок? а то он у меня прыгает бесконечно (прошу объяснять доступно потому-что я в юнити всего пару месяцев)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
    private float moveInput;
    private bool facingRight = true;
   
    public FixedTouchField touchField;
    public Joystick joystick;
    

    Rigidbody rb;
    float xMov;
    float zMov;

    float yRot;
    public int speed = 5;


    private void Start()
    {
     
        rb = GetComponent<Rigidbody>();
    }

    

    private void FixedUpdate()
    {

        xMov = joystick.Horizontal();
        zMov = joystick.Vertical();

        yRot = touchField.TouchDist.x / 20;

        Vector3 MovHor = transform.right * xMov;
        Vector3 MovVer = transform.forward * zMov;

        Vector3 velocity = (MovHor + MovVer).normalized * speed;
        Vector3 rotation = new Vector3(0, yRot, 0) * speed;

        rb.MovePosition(rb.position + velocity * Time.deltaTime);
        rb.MoveRotation(rb.rotation * Quaternion.Euler(rotation));
         


    }


    public void Jump()
    {
        rb.AddForce(transform.up * 5, ForceMode.Impulse);
    }




    




}
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
aDOPPIO
@aDOPPIO
Начинающий c# + Unity программист
Rigidbody rb;
    bool jumpedTwice; // Значение true, когда персонаж прыгнул второй раз.
    bool isPlayerOnGround; // Значение true, когда персонаж стоит на земле.
    public void Jump()
    {
        if(!jumpedTwice)
        {
            if(!isPlayerOnGround)
            {
                isJumpedTwice = true;
            }
            rb.AddForce(transform.up * 5, ForceMode.Impulse);
        }
    }

Однако Вам надо придумать, как вы будете делать проверку isPlayerGrounded, есть(мне известно) два варианта. Один из них - проверка на столкновение с коллайдером, принадлежащему объекту с определённым тегом(tag).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
mpulse Москва
от 80 000 до 140 000 ₽
Stark Games Минск
До 3 500 $
Frostgate studio Новосибирск
от 60 000 до 100 000 ₽
29 сент. 2020, в 01:42
5000 руб./за проект
28 сент. 2020, в 22:46
1500 руб./за проект
28 сент. 2020, в 22:42
5000 руб./за проект