C#Unity角色跳得很奇怪

时间:2016-04-14 18:38:53

标签: c# unity5

大家好!

我的UNITY 5代码有问题。

我的角色可以跳跃,但他会立即跳得太快。 看起来很奇怪。

非常感谢您对我的代码的反馈!

using UnityEngine;
using System.Collections;

public class Gravity : MonoBehaviour {
    private float inputDirection;
    private float VerticalSpeed;
    private float gravity = -2f;
    private float speedmultiplier = 5f;
    private bool jump;

    private Vector3 moveVector;
    private CharacterController controller;

    // Use this for initialization
    void Start () {
        controller = GetComponent<CharacterController> ();
    }

    // Update is called once per frame
    void Update () {
        inputDirection = Input.GetAxis ("Horizontal");
        moveVector = new Vector3 (inputDirection, VerticalSpeed, 0) * speedmultiplier;
        controller.Move (moveVector * Time.deltaTime);

        if (controller.isGrounded) {
            VerticalSpeed = 0.0f;
            jump = true;
        } else {
            VerticalSpeed = gravity;
            jump = false;
        }

        if (Input.GetKey(KeyCode.X)) {
            if(jump == true) {
                VerticalSpeed += 25f;
        }
    }
    }
}

1 个答案:

答案 0 :(得分:1)

您可以尝试更改else中的垂直速度,以反映随时间的变化。

也许是这样的:

VerticalSpeed += gravity * Time.deltaTime

而不是仅仅将其设置为引力。您可能需要使用初始跳跃速度来让它感觉更好,但是这应该开始快速跳跃,当你到达跳跃的顶部时减速,并在你跌倒时加速回升。