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

質問編集履歴

5

コード修正

2020/06/20 08:11

投稿

futon-fukafuka
futon-fukafuka

スコア9

title CHANGED
File without changes
body CHANGED
@@ -27,11 +27,11 @@
27
27
  Vector3 PlayerPosition = this.transform.position;
28
28
  Vector3 Movement = PlayerPosition - lastPos;
29
29
 
30
- if (Input.GetButtonDown("Fire3"))
31
- {
32
30
  //1フレーム前と現在の座標の差を、enhancementの値で乗算
33
31
  Vector3 enhancedMovement = Movement * enhancement;
34
32
 
33
+ if (Input.GetButtonDown("Fire3"))
34
+ {
35
35
  //rockプレハブをhandの位置から射出
36
36
  GameObject rocks = Instantiate(rock) as GameObject;
37
37
  rocks.transform.position = hand.transform.position;

4

コード修正

2020/06/20 08:11

投稿

futon-fukafuka
futon-fukafuka

スコア9

title CHANGED
File without changes
body CHANGED
@@ -23,13 +23,16 @@
23
23
 
24
24
  void Update()
25
25
  {
26
+ //1フレーム前と現在の座標の差を算出
26
27
  Vector3 PlayerPosition = this.transform.position;
27
28
  Vector3 Movement = PlayerPosition - lastPos;
28
29
 
29
30
  if (Input.GetButtonDown("Fire3"))
30
31
  {
32
+ //1フレーム前と現在の座標の差を、enhancementの値で乗算
31
33
  Vector3 enhancedMovement = Movement * enhancement;
32
34
 
35
+ //rockプレハブをhandの位置から射出
33
36
  GameObject rocks = Instantiate(rock) as GameObject;
34
37
  rocks.transform.position = hand.transform.position;
35
38
  Vector3 Force = presetForce + enhancedMovement;

3

コードの間違い等を修正

2020/06/20 08:10

投稿

futon-fukafuka
futon-fukafuka

スコア9

title CHANGED
File without changes
body CHANGED
@@ -8,30 +8,32 @@
8
8
 
9
9
  ### 該当のソースコード
10
10
 
11
+ public class throwing : MonoBehaviour
12
+ {
13
+ Vector3 PlayerPosition;
14
+ Vector3 lastPos;
15
+ Vector3 Movement;
16
+ Vector3 enhancedMovement;
17
+ public float enhancement;
18
+ public GameObject rock;
19
+ GameObject rocks;
20
+ public GameObject hand;
21
+ Vector3 Force;
22
+ public Vector3 presetForce;
11
23
 
12
24
  void Update()
13
25
  {
14
- if (Input.GetButtonDown("Fire3"))
15
- {
16
- //操作キャラの現在の座標
17
- Vector3 PlayerPosition = this.transform.position;
26
+ Vector3 PlayerPosition = this.transform.position;
27
+ Vector3 Movement = PlayerPosition - lastPos;
18
28
 
19
- //1フレーム前と現在の座標の差
29
+ if (Input.GetButtonDown("Fire3"))
30
+ {
20
- Vector3 Movement = PlayerPosition - lastPos;
31
+ Vector3 enhancedMovement = Movement * enhancement;
21
32
 
22
- //座標の差を、インスペクターで指定した値(enhancement)で乗算
23
- Vector3 enhancedMovement = Movement * enhancement;
24
-
25
- // 投げる物体(rock)の複製
26
- GameObject rocks = Instantiate(rock) as GameObject;
33
+ GameObject rocks = Instantiate(rock) as GameObject;
27
-
28
- // 発射位置を“hand”(インスペクターでオブジェクト指定)に調整
29
- rocks.transform.position = hand.position;
34
+ rocks.transform.position = hand.transform.position;
30
-
31
- //インスペクターで設定した発射威力(presetForce)に、enhancedMovementを加算
32
- Vector3 Force = presetForce + enhancedMovement;
35
+ Vector3 Force = presetForce + enhancedMovement;
33
-
34
- // Rigidbodyのaddforceで発射
35
- rocks.GetComponent<Rigidbody>().AddForce(Force);
36
+ rocks.GetComponent<Rigidbody>().AddForce(Force);
36
-
37
+ }
37
-
38
+ }
39
+ }

2

コードの間違い修正

2020/06/20 08:06

投稿

futon-fukafuka
futon-fukafuka

スコア9

title CHANGED
File without changes
body CHANGED
@@ -26,12 +26,12 @@
26
26
  GameObject rocks = Instantiate(rock) as GameObject;
27
27
 
28
28
  // 発射位置を“hand”(インスペクターでオブジェクト指定)に調整
29
- bullets.transform.position = hand.position;
29
+ rocks.transform.position = hand.position;
30
30
 
31
31
  //インスペクターで設定した発射威力(presetForce)に、enhancedMovementを加算
32
32
  Vector3 Force = presetForce + enhancedMovement;
33
33
 
34
34
  // Rigidbodyのaddforceで発射
35
- bullets.GetComponent<Rigidbody>().AddForce(Force);
35
+ rocks.GetComponent<Rigidbody>().AddForce(Force);
36
36
 
37
37
 

1

言い回し修正

2020/06/20 07:47

投稿

futon-fukafuka
futon-fukafuka

スコア9

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
  2Dアクションゲームでキャラクターが物体を投げる際に、
4
4
  歩行速度を物体の移動速度に加算したいと考えています。
5
5
  そこで、1フレーム前の座標と現在の座標の差をaddforceの値に加算しようと思ったのですが、
6
- むしろ勢い落ちるなど、上手くいきません。
6
+ むしろ飛ぶ距離縮むなど、上手くいきません。
7
7
  改善方法を教えて頂けると嬉しいです。よろしくお願いします。
8
8
 
9
9
  ### 該当のソースコード