Остановить изменение высоты прыжка персонажа в зависимости от частоты кадров? - PullRequest
0 голосов
/ 08 марта 2020

Я написал функцию для моего контроллера персонажа, которая позволяет персонажу игрока выполнять действие прыжка. В данный момент я использую два монитора, один из которых - дисплей с частотой 60 Гц, в то время как pther - дисплей с частотой 120 Гц. При запуске игры на дисплее с частотой 120 Гц, функция прыжка действует так, как я ожидаю, но при работе на дисплее с частотой 60 Гц персонаж прыгает намного выше, чем я предполагал. Я знаю, что это как-то связано с использованием Time.deltatime, но я не могу понять, как правильно реализовать это в моей функции перехода. код выглядит следующим образом:

 void PlayerJump()
{


    if (controller.isGrounded)
    {   
        if(Input.GetButtonDown("Jump"))
            {
                moveDirection.y = jumpForce;          

            }
        else
            {
                moveDirection.y = fallSpeed;

            }
    }
     moveDirection.y = moveDirection.y  + (Physics.gravity.y ) ;

}

вот все, что выше предыдущей функции для дальнейшего уточнения:

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

 public class platforming_controller_2D : MonoBehaviour
 {

public float movementSpeed;
public float jumpForce;
public float gravityScale;
public float fallSpeed;





public double jumpGravity = (-9.81 * 0.045);


public Animator anim;
public CharacterController controller;

private Vector3 moveDirection;

void Start()
{
    controller = GetComponent<CharacterController>();
    anim = GetComponent<Animator>();
}

void Update()
{
    PlayerMovement();
    playRunAnimation();
    PlayerJump();
    playJumpAnimation();
    controller.Move(moveDirection * Time.deltaTime);
}

void PlayerMovement()
{
    //float moveVertical = Input.GetAxis("Vertical");
    float moveHorizontal = Input.GetAxis("Horizontal");
    Vector3 newPosition = new Vector3(moveHorizontal, 0.0f, 0.0f);
    moveDirection = new Vector3(Input.GetAxis("Horizontal") * movementSpeed, moveDirection.y, 0.0f);
    transform.LookAt(newPosition + transform.position);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...