回答編集履歴

3

誤字の修正

2020/12/28 15:01

投稿

PinoMatcha
PinoMatcha

スコア368

test CHANGED
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
 
47
- ### (追記)isStopdがずっとtrueのまま
47
+ ### (追記)isStoppedがずっとtrueのまま
48
48
 
49
49
  答えは簡単で、単純にプロパティが変わっていないからです。
50
50
 

2

追記

2020/12/28 15:00

投稿

PinoMatcha
PinoMatcha

スコア368

test CHANGED
@@ -32,8 +32,68 @@
32
32
 
33
33
  ナビゲーションは触った程度しかないですがUnity5.6以降のバージョンではStopとResumeではなく
34
34
 
35
+
36
+
35
- ```agent.isStopped = true;```
37
+ agent.isStopped = true;
38
+
39
+
36
40
 
37
41
  のようにisStoppedプロパティをtrue、falseで操作するようです。
38
42
 
39
43
  試してみてください。
44
+
45
+
46
+
47
+ ### (追記)isStopdがずっとtrueのまま
48
+
49
+ 答えは簡単で、単純にプロパティが変わっていないからです。
50
+
51
+
52
+
53
+ ```C#
54
+
55
+ /// <summary>
56
+
57
+ /// バナナが当たった時
58
+
59
+ /// </summary>
60
+
61
+ public void BananaEfect()
62
+
63
+ {
64
+
65
+ // ifの可読性を上げました。
66
+
67
+ // ({}を付けただけです)
68
+
69
+
70
+
71
+ if (navMeshAgent != null) {
72
+
73
+ //navMeshAgent.isStopped = true;
74
+
75
+ state = AiState.stop;
76
+
77
+
78
+
79
+ // 問題の部分
80
+
81
+ /* navMeshAgentがある場合はこっちが呼ばれるのでBananaStop()がコールされない。
82
+
83
+ 結果、state = AiState.stop のまま */
84
+
85
+
86
+
87
+ } else {
88
+
89
+ StartCoroutine(BananaStop());
90
+
91
+ }
92
+
93
+
94
+
95
+ print("呼ばれた");
96
+
97
+ }
98
+
99
+ ```

1

書式が上手く動かないので除外

2020/12/28 14:59

投稿

PinoMatcha
PinoMatcha

スコア368

test CHANGED
@@ -6,11 +6,15 @@
6
6
 
7
7
  ### プレイヤーの移動を徐々に止まらせる処理について
8
8
 
9
- rigidbodyのvelocityを徐々に操作するなら```Vector3.Lerp()```を使うことをおすすめします。
9
+ rigidbodyのvelocityを徐々に操作するならVector3.Lerp()を使うことをおすすめします。
10
10
 
11
11
  rigidbodyのvelocityは型がVector3なので。
12
12
 
13
+
14
+
13
- ```rig.velocity = Vector3.Lerp(rig.velocity, Vector3.zero, Time.deltaTime * 補正値);```
15
+ rig.velocity = Vector3.Lerp(rig.velocity, Vector3.zero, Time.deltaTime * 補正値);
16
+
17
+
14
18
 
15
19
  これでvelocityが徐々にゼロへ向かいます。
16
20