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