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

回答編集履歴

3

誤字の修正

2020/12/28 15:01

投稿

PinoMatcha
PinoMatcha

スコア368

answer CHANGED
@@ -21,7 +21,7 @@
21
21
  のようにisStoppedプロパティをtrue、falseで操作するようです。
22
22
  試してみてください。
23
23
 
24
- ### (追記)isStopdがずっとtrueのまま
24
+ ### (追記)isStoppedがずっとtrueのまま
25
25
  答えは簡単で、単純にプロパティが変わっていないからです。
26
26
 
27
27
  ```C#

2

追記

2020/12/28 15:00

投稿

PinoMatcha
PinoMatcha

スコア368

answer CHANGED
@@ -15,6 +15,36 @@
15
15
 
16
16
  ### ナビゲーション機能について
17
17
  ナビゲーションは触った程度しかないですがUnity5.6以降のバージョンではStopとResumeではなく
18
+
18
- ```agent.isStopped = true;```
19
+ agent.isStopped = true;
20
+
19
21
  のようにisStoppedプロパティをtrue、falseで操作するようです。
20
- 試してみてください。
22
+ 試してみてください。
23
+
24
+ ### (追記)isStopdがずっとtrueのまま
25
+ 答えは簡単で、単純にプロパティが変わっていないからです。
26
+
27
+ ```C#
28
+ /// <summary>
29
+ /// バナナが当たった時
30
+ /// </summary>
31
+ public void BananaEfect()
32
+ {
33
+ // ifの可読性を上げました。
34
+ // ({}を付けただけです)
35
+
36
+ if (navMeshAgent != null) {
37
+ //navMeshAgent.isStopped = true;
38
+ state = AiState.stop;
39
+
40
+ // 問題の部分
41
+ /* navMeshAgentがある場合はこっちが呼ばれるのでBananaStop()がコールされない。
42
+ 結果、state = AiState.stop のまま */
43
+
44
+ } else {
45
+ StartCoroutine(BananaStop());
46
+ }
47
+
48
+ print("呼ばれた");
49
+ }
50
+ ```

1

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

2020/12/28 14:59

投稿

PinoMatcha
PinoMatcha

スコア368

answer CHANGED
@@ -2,9 +2,11 @@
2
2
  遅くなってすみません……。
3
3
 
4
4
  ### プレイヤーの移動を徐々に止まらせる処理について
5
- rigidbodyのvelocityを徐々に操作するなら```Vector3.Lerp()```を使うことをおすすめします。
5
+ rigidbodyのvelocityを徐々に操作するならVector3.Lerp()を使うことをおすすめします。
6
6
  rigidbodyのvelocityは型がVector3なので。
7
+
7
- ```rig.velocity = Vector3.Lerp(rig.velocity, Vector3.zero, Time.deltaTime * 補正値);```
8
+ rig.velocity = Vector3.Lerp(rig.velocity, Vector3.zero, Time.deltaTime * 補正値);
9
+
8
10
  これでvelocityが徐々にゼロへ向かいます。
9
11
 
10
12
  ポイントとして、**徐々に値を変化させたいときはLerp、もしくはSlerpを使えば解決**します。