2015-06-25 24 views
2

我正在一個項目,我試圖通過在一個角度跳躍我的角色移動。在幀更新期間,角色將來回轉動,而當按下右鍵時,角色將跳轉。這段代碼會使它們以某個角度跳躍,但它們總是返回到原來的位置。以一個角度與Unity和C跳躍#

此外,我有兩個角色在舞臺的兩側開始,但是當我開始遊戲時,他們會傳送到相同的位置。我花了很多時間審查我的代碼,但我似乎無法得到這個工作。你可以提供什麼幫助?

using UnityEngine; 
using System.Collections; 

public class Freg : MonoBehaviour { 
    public GameObject Tounge; 
    public float gravity; 
    public float tempScale = 1; 
    public float MaxJump = 8f; 
    public float MinJump = 0.1f; 
    static float yVector = 0; 
    static float xVector = 0; 
    static bool grounded = true; 
    bool isleft = false; 
    Vector3 farthestleft; 
    Vector3 farthestright; 

    // Use this for initialization 
    void Start() { 
     farthestleft = new Vector3 (-33.7f, 50.2f, 24.8f); 
     farthestright = new Vector3 (22.56f, 54.83f, -15.12f); 
    } 

    void OnTriggerEnter (Collider other) { 
     if (other.GetComponent<Collider>().tag == "Ground") { 
      grounded = true; 
      yVector = 0; 
      //xVector = 0; 
      Vector3 onGround = new Vector3 (transform.position.x, -4.86f, transform.position.z); 
      transform.position = onGround; 
     } else 
      grounded = false; 
    } 

    // Update is called once per frame 
    void Update() { 
     /*if (Input.GetKey (KeyCode.UpArrow) == true) { 
      Tounge.transform.localScale.Set (1, 0.5f, 1); 
     } else { 
      Tounge.transform.localScale.Set (1, 1, 1); 
     }*/ 

     if (grounded == false) { 
      yVector -= gravity; 
     } 
     if (Input.GetKeyDown (KeyCode.UpArrow) == true && grounded == true) { 
      MinJump += 0.5f; 
     } else if (MinJump > 0.1f){ 
      yVector += MinJump; 
      xVector += MinJump; 
      MinJump = 0.1f; 
      grounded = false; 
     } 
     Vector3 stuff = new Vector3 (transform.localPosition.y + xVector, transform.position.y + yVector, transform.position.z); 
     transform.position = stuff; 
     float t = Mathf.PingPong (Time.time * 0.5f * 2.0f, 1.0f); 
     transform.eulerAngles = Vector3.Lerp (farthestright, farthestleft, t); 

} 
} 

回答

0

它看起來像你應該更新每次更新的if語句,而不是以後這種方式在目前的位置,實際位置是基於上移動的決定,而不是循環剛剛結束。

+0

我們嘗試過,但是當您更改更新位置的線的位置時,當您按下跳轉按鈕時它根本不會移動 – Bean