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);
}
}
作爲一個好奇心,當你調整軸時,調試日誌爲''''移動'''顯示什麼?我的直覺是你增加了一個不足以移動物體的力量。檢查你的''''運動'''','''''speed''''和'''Time.deltaTime''''變量以獲得合適的值是我的第一個想法。 –
我的想法和Kivak Wolf's一樣。請記住'Time.deltaTime'通常是一個非常小的數字(1/60-ish)。由於「速度」爲10,「運動」的組件值僅在-1和1之間變化,因此添加的最終力量將非常小。可能不足以視覺上克服物體的慣性,更不用說摩擦。 – Serlite
謝謝大家如此快速的迴應。真棒社區。當我改變速度值時它開始工作。 – Massaxe