質問編集履歴
2
分かりにくいですがdoの中身とデバックの結果を追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,21 @@
|
|
2
2
|
|
3
3
|
do{
|
4
4
|
|
5
|
+
targetplayer = originallist[UnityEngine.Random.Range(0,originallist.Count)];
|
6
|
+
|
7
|
+
debugcount++;
|
8
|
+
|
9
|
+
Debug.Log("targetplayer"+targetplayer.PlayerName+" attacker "+attacker.PlayerName);
|
10
|
+
|
11
|
+
Debug.Log(targetplayer.Team+""+targetplayer.isLive+" "+attacker.Team+attacker.isLive);
|
12
|
+
|
13
|
+
if(debugcount > 50){
|
14
|
+
|
15
|
+
Debug.Log("無限ループ");
|
16
|
+
|
5
|
-
|
17
|
+
break;
|
18
|
+
|
19
|
+
}
|
6
20
|
|
7
21
|
}while((targetplayer.isLive == false) || (targetplayer.Team == attacker.Team))
|
8
22
|
|
@@ -13,3 +27,11 @@
|
|
13
27
|
do while文で上記のような条件式を書いたのですが、targetplayer.isLive == trueで且つtargetplayer.Team != attacker.Teamのような条件の時でもwhile文から抜けずループしてしまうことがあります。
|
14
28
|
|
15
29
|
条件式の書き方でおかしいところがあるでしょうか?。
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
デバッグで確認したときの画像です。![イメージ説明](2a4d5b2299c0e5351f0b337f226461be.jpeg)
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
分かりにくいですがdoの中身とデバックの結果を追記しました。
|
1
カッコの数が間違っていたので編集しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
・・・
|
6
6
|
|
7
|
-
}while((targetplayer.isLive == false) || (targetplayer.Team == attacker.Team)
|
7
|
+
}while((targetplayer.isLive == false) || (targetplayer.Team == attacker.Team))
|
8
8
|
|
9
9
|
```
|
10
10
|
|