2015-10-01 52 views
1

我一直在嘗試在2D遊戲中爲我的玩家制作一個移動腳本,但沒有成功。我不知道它爲什麼不起作用。在Unity C中的運動腳本#

問題是玩家不動。我有一個RigidBody附加和重力。 (不知道是否重力使得這種差別,但我只是想提到它。)

using UnityEngine; 
using System.Collections; 

public class PlayerMovement : MonoBehaviour { 
    public Rigidbody rb; 
    public float speed = 10; 
// Use this for initialization 
void Start() { 

} 

// Update is called once per frame 
void FixedUpdate() { 
    float mx = Input.GetAxisRaw("Horizontal"); 
    float mz = Input.GetAxisRaw("Vertical"); 

    Vector3 movement = new Vector3(mx, 0.0f, mz); 
    Debug.Log(movement); 
    rb.AddForce(movement * speed * Time.deltaTime); 

    } 
} 
+0

作爲一個好奇心,當你調整軸時,調試日誌爲''''移動'''顯示什麼?我的直覺是你增加了一個不足以移動物體的力量。檢查你的''''運動'''','''''speed''''和'''Time.deltaTime''''變量以獲得合適的值是我的第一個想法。 –

+0

我的想法和Kivak Wolf's一樣。請記住'Time.deltaTime'通常是一個非常小的數字(1/60-ish)。由於「速度」爲10,「運動」的組件值僅在-1和1之間變化,因此添加的最終力量將非常小。可能不足以視覺上克服物體的慣性,更不用說摩擦。 – Serlite

+0

謝謝大家如此快速的迴應。真棒社區。當我改變速度值時它開始工作。 – Massaxe

回答

3

你可能想確保你是真正使玩家移動加入足夠的力量。嘗試增加力量變量,直到你看到一個變化。希望這可以幫助!

+0

非常感謝。有效。不知道爲什麼我以前沒有嘗試過。希望你有一個美好的一天:) – Massaxe