質問編集履歴
5
コード修正
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
コード修正
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
コードの間違い等を修正
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
|
-
|
26
|
+
Vector3 PlayerPosition = this.transform.position;
|
27
|
+
Vector3 Movement = PlayerPosition - lastPos;
|
18
28
|
|
19
|
-
|
29
|
+
if (Input.GetButtonDown("Fire3"))
|
30
|
+
{
|
20
|
-
|
31
|
+
Vector3 enhancedMovement = Movement * enhancement;
|
21
32
|
|
22
|
-
//座標の差を、インスペクターで指定した値(enhancement)で乗算
|
23
|
-
Vector3 enhancedMovement = Movement * enhancement;
|
24
|
-
|
25
|
-
// 投げる物体(rock)の複製
|
26
|
-
|
33
|
+
GameObject rocks = Instantiate(rock) as GameObject;
|
27
|
-
|
28
|
-
// 発射位置を“hand”(インスペクターでオブジェクト指定)に調整
|
29
|
-
|
34
|
+
rocks.transform.position = hand.transform.position;
|
30
|
-
|
31
|
-
//インスペクターで設定した発射威力(presetForce)に、enhancedMovementを加算
|
32
|
-
|
35
|
+
Vector3 Force = presetForce + enhancedMovement;
|
33
|
-
|
34
|
-
// Rigidbodyのaddforceで発射
|
35
|
-
|
36
|
+
rocks.GetComponent<Rigidbody>().AddForce(Force);
|
36
|
-
|
37
|
+
}
|
37
|
-
|
38
|
+
}
|
39
|
+
}
|
2
コードの間違い修正
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
|
-
|
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
|
-
|
35
|
+
rocks.GetComponent<Rigidbody>().AddForce(Force);
|
36
36
|
}
|
37
37
|
}
|
1
言い回し修正
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
|
### 該当のソースコード
|