質問編集履歴

2

「解決しました」のAddForceしてる行が抜けてたので追加

2021/07/12 02:58

投稿

paraprara
paraprara

スコア3

test CHANGED
File without changes
test CHANGED
@@ -134,4 +134,6 @@
134
134
 
135
135
  Vector3 dir = new Vector3(0, Mathf.Sin(angle * Mathf.Deg2Rad), Mathf.Cos(angle * Mathf.Deg2Rad));
136
136
 
137
+ rb.AddForce(obj.transform.forward + dir * throwForcePow);
138
+
137
139
  ```

1

「解決しました」を追加

2021/07/12 02:58

投稿

paraprara
paraprara

スコア3

test CHANGED
File without changes
test CHANGED
@@ -117,3 +117,21 @@
117
117
  射出速度を計算して飛ばす方法をインターネットで見つけたのですが、場合によって算出が不可能な場面があったのでその方法は使えませんでした。
118
118
 
119
119
  [参考](https://qiita.com/_udonba/items/a71e11c8dd039171f86c) https://qiita.com/_udonba/items/a71e11c8dd039171f86c
120
+
121
+
122
+
123
+ ### 解決しました。
124
+
125
+ 回答者様から三角関数とやらを使い new Vector3(0,0.3f,0.3f)を変えれば良いとの答えを頂きましたので
126
+
127
+ 「Unity sin cos 回転」と調べたところ以下のように置き換えたらちゃんと動きました。
128
+
129
+ ```
130
+
131
+ // 30度上に飛ばす
132
+
133
+ float angle = 30f;
134
+
135
+ Vector3 dir = new Vector3(0, Mathf.Sin(angle * Mathf.Deg2Rad), Mathf.Cos(angle * Mathf.Deg2Rad));
136
+
137
+ ```