CSharp
1float moveHorizontal = Input.GetAxis(“Horizontal”);
2float moveVertical = Input.GetAxis(“Vertical”);
は、ゲームパッドからの入力を取得しています。
つまりこのコードは、ゲームパッドからの入力を受け取り、その方向へ動かすスクリプトになっています。
ゲームパッドのスティックを動かすなどの入力は行いましたか?
ゲームパッドの入力なく、とりあえず実行ボタンを押すだけで玉を動かしたいならば、以下のようにすれば良いと思います。
CSharp
1public class players: MonoBehaviour
2{
3 public Rigidbody rb;
4
5 private float speed = 0.5f;
6
7 void Start()
8 {
9 rb = GetComponent<Rigidbody>();
10 }
11
12 void Update()
13 {
14 float moveHorizontal = Input.GetAxis("Horizontal");
15 float moveVertical = Input.GetAxis("Vertical");
16 Vector3 movement = new Vecter3(0.0f, 0.0f, -0.5f)
17
18 rb.AddForce(movement * speed);
19 }
20}
キーボードで動かしたい場合は、以下のようにしてみてはどうでしょうか。
CSharp
1public class players: MonoBehaviour
2{
3 public Rigidbody rb;
4
5 private float speed = 0.5f;
6
7 void Start()
8 {
9 rb = GetComponent<Rigidbody>();
10 }
11
12 void Update()
13 {
14 float moveHorizontal = 0.0f;
15 float moveVertical = 0.0f;
16
17 if (Input.GetKey(KeyCode.UpArrow))
18 {
19 moveVertical = speed;
20 }
21 else if(Input.GetKey(KeyCode.DownArrow))
22 {
23 moveVertical = -speed;
24 }
25
26 if (Input.GetKey(KeyCode.RightArrow))
27 {
28 moveHorizontal = speed;
29 }
30 else if (Input.GetKey(KeyCode.LeftArrow))
31 {
32 moveHorizontal = -speed;
33 }
34
35 Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
36 rb.AddForce(movement);
37 }
38}