2016-04-14 10 views
3

こんにちは!C#Unityキャラクターは本当に変わっています

私の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

elseの垂直方向の速度を変更して、時間の経過とともに変更することができます。

おそらくのようなもの:代わりにちょうど重力に設定するの

VerticalSpeed += gravity * Time.deltaTime

。あなたは最初のジャンプスピードで遊ぶ必要があるかもしれませんが、これは気分が良くなるようにする必要がありますが、これはあなたのジャンプの速さを開始し、ジャンプの先頭に達すると減速し、落ちると速度を戻します。

+0

ありがとうございます!出来た。 – SoulPixel