2016-04-14 13 views
3

Merhaba arkadaşlar!C# Birlik Karakter gerçekten garip atlar

UNITY 5 kodumla ilgili bir sorunum var.

Karakterim atlayabilir ama anında ve çok hızlı atlar. Gerçekten garip görünüyor.

Kodumla ilgili geri bildirimlerinize minnettar olurum!

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; 
     } 
    } 
    } 
} 

cevap

1

Sen zamanla değişikliği yansıtmak için senin else dikey hız değiştirmeyi deneyebilirsiniz.

Belki böyle bir şey: Bunun yerine sadece yerçekimi onu ayarlama

VerticalSpeed += gravity * Time.deltaTime

. Daha iyi hissetmek için ilk atlama hızınızla oynamanız gerekebilir, ancak bu, zıplamanızı hızlıca başlatır, zıplamanın zirvesine ulaştıkça yavaşlar ve düşerken hızlandırın.

+0

Teşekkürler! İşe yaradı. – SoulPixel