teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2020/08/23 04:59

投稿

obasuteyama-
obasuteyama-

スコア43

answer CHANGED
@@ -1,3 +1,45 @@
1
+ ###8/23追記
2
+ AddForceを使ってみてはどうでしょうか?
3
+ Addforceを使うと、力が加わって移動するのですが、その時に回転します。
4
+ そうしたらご想像通りになるのではないでしょうか。
5
+ 例えば
6
+ 1 新規3Dプロジェクトの作成
7
+ 2 Plane,Sphereを作成
8
+ 3 SphereにRigidbodyを追加
9
+ 4 Sphereにスクリプトを追加
10
+ ```C#
11
+ using UnityEngine;
12
+
13
+ public class ExTest : MonoBehaviour
14
+ {
15
+ Rigidbody obj;
16
+ //別にこれはしなくてもよいです
17
+ //こうするといちいちスクリプトを書き換えなくてもUnityで変えられます
18
+ public float xPower = 1.0f;
19
+
20
+ private void Update()
21
+ {
22
+ obj = this.GetComponent<Rigidbody>();
23
+
24
+      //もしwキーを押したら..
25
+ if (Input.GetKey(KeyCode.W))
26
+ {
27
+        //力をx,y,zのどこから加えるか
28
+ Vector3 power = new Vector3(0.0f, 0.0f, xPower);
29
+
30
+ //powerの場所から継続的に力を加える
31
+ obj.AddForce(power, ForceMode.Force);
32
+ }
33
+ }
34
+ }
35
+ ```
36
+ 自分の環境ではこれで動きました。
37
+ 参考になれたらうれしいです。
38
+ もし動かなかったら行ってください!
39
+ ちなみに↓
40
+ ![イメージ説明](a2f0ec6f68e4e0bc2abfc004d932d269.png)
41
+
42
+ #以前の回答
1
43
  日本語化しているので正確には伝えられないかもしません。
2
44
  本当に進むかわかりませんし試してもいないのでわからないのですが、
3
45
  リジッドボディーの位置の固定や回転の固定をいろいろといじってみるのはどうでしょうか?