回答編集履歴

2

追記

2019/10/11 12:50

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,8 @@
1
- 以下の処理で想定している回転になるかと思われます。ご参考になれば。
1
+ 以下のどちらかの処理で想定している回転になるかと思われます。
2
2
 
3
3
 
4
+
5
+ 上下左右キーでキャラクターを移動。移動した向きにキャラクターが向く。
4
6
 
5
7
  ```C#
6
8
 
@@ -65,3 +67,37 @@
65
67
  }
66
68
 
67
69
  ```
70
+
71
+
72
+
73
+ キャラクターの向きに前進後退、左右キーで回転だけ行う。
74
+
75
+ Update以外は上記と同様です。
76
+
77
+ ```C#
78
+
79
+ void Update()
80
+
81
+ {
82
+
83
+ var z = Input.GetAxis("Horizontal");
84
+
85
+ var x = Input.GetAxis("Vertical");
86
+
87
+
88
+
89
+ if(x != 0)rb.AddForce(x * transform.forward * speed);
90
+
91
+
92
+
93
+ if (z != 0f)
94
+
95
+ {
96
+
97
+ transform.Rotate(new Vector3(0, z * rotateSpeed, 0));
98
+
99
+ }
100
+
101
+ }
102
+
103
+ ```

1

求めている内容に近い回答に変更

2019/10/11 12:50

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,67 @@
1
- タイトル「Unityオブジェクトを回転させる方法」で検索をして見つかようページでは解決できない内容でしょうか。
1
+ 以下処理想定して回転にと思われますご参考になれば。
2
2
 
3
+
4
+
5
+ ```C#
6
+
7
+ using UnityEngine;
8
+
9
+
10
+
11
+ public class Move : MonoBehaviour
12
+
13
+ {
14
+
15
+ private Rigidbody rb;
16
+
17
+ public float speed = 10.0f;
18
+
19
+
20
+
21
+ // 簡易の回転速度
22
+
23
+ public float rotateSpeed = 10f;
24
+
25
+
26
+
27
+ void Awake()
28
+
29
+ {
30
+
3
- 疑問点をあらかじめ検索してみる事で質問をせずに済み、効率的に作業ができます。
31
+ rb = GetComponent<Rigidbody>();
32
+
33
+ }
34
+
35
+
36
+
37
+ void Update()
38
+
39
+ {
40
+
41
+ var z = Input.GetAxis("Horizontal");
42
+
43
+ var x = Input.GetAxis("Vertical");
44
+
45
+ var dir = new Vector3(z, 0, x);
46
+
47
+ rb.AddForce(dir * speed);
48
+
49
+
50
+
51
+ // 向きを変える処理
52
+
53
+ if (dir.sqrMagnitude > 0f)
54
+
55
+ {
56
+
57
+ var forward = Vector3.Slerp(transform.forward, dir, rotateSpeed * Time.deltaTime);
58
+
59
+ transform.LookAt(transform.position + forward);
60
+
61
+ }
62
+
63
+ }
64
+
65
+ }
66
+
67
+ ```