回答編集履歴
4
文言微修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
以下のどちらでもできそうです
|
1
|
+
以下のどちらでもできそうです。
|
2
2
|
質問者さんのコードは以下の両方の考え方が混在しているように思います。
|
3
3
|
|
4
4
|
### 例1
|
3
文言微修正
answer
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
+
以下のどちらでもできそうですが。
|
1
|
-
|
2
|
+
質問者さんのコードは以下の両方の考え方が混在しているように思います。
|
2
3
|
|
3
4
|
### 例1
|
4
5
|
```C#
|
@@ -29,11 +30,11 @@
|
|
29
30
|
using System.Linq; // LINQを使う
|
30
31
|
using UnityEngine;
|
31
32
|
|
32
|
-
// 除外する値を
|
33
|
+
// 除外する値のリストを使う例
|
33
34
|
public class ExclusionPickup : MonoBehaviour
|
34
35
|
{
|
35
|
-
[SerializeField] List<int> exList; // 除外する値の
|
36
|
+
[SerializeField] List<int> exList; // 除外する値のリスト
|
36
|
-
[SerializeField] int maxValue;
|
37
|
+
[SerializeField] int maxValue; // 乱数の最大値
|
37
38
|
|
38
39
|
private void Update ()
|
39
40
|
{
|
2
微修正
answer
CHANGED
@@ -8,14 +8,14 @@
|
|
8
8
|
// あらかじめ必要な要素のみを含むリストを使う例
|
9
9
|
public class InclusionPickup : MonoBehaviour
|
10
10
|
{
|
11
|
-
[SerializeField] List<int>
|
11
|
+
[SerializeField] List<int> inList; // 必要な要素のみを含むリスト
|
12
12
|
|
13
13
|
private void Update ()
|
14
14
|
{
|
15
15
|
// マウスの左クリック
|
16
16
|
if ( Input.GetMouseButtonDown ( 0 ) )
|
17
17
|
{
|
18
|
-
var element =
|
18
|
+
var element = inList[Random.Range(0, inList.Count)];
|
19
19
|
|
20
20
|
print ( element );
|
21
21
|
}
|
@@ -32,7 +32,7 @@
|
|
32
32
|
// 除外する値を指定する例
|
33
33
|
public class ExclusionPickup : MonoBehaviour
|
34
34
|
{
|
35
|
-
[SerializeField] List<int>
|
35
|
+
[SerializeField] List<int> exList; // 除外する値の含むリスト
|
36
36
|
[SerializeField] int maxValue; // 乱数の最大値
|
37
37
|
|
38
38
|
private void Update ()
|
@@ -44,7 +44,7 @@
|
|
44
44
|
var element = Random.Range(0, maxValue);
|
45
45
|
|
46
46
|
// 除外リストの値と一致していたら引き直す
|
47
|
-
while (
|
47
|
+
while ( exList.Any ( x => x == element ) )
|
48
48
|
{
|
49
49
|
element = Random.Range ( 0, maxValue );
|
50
50
|
}
|
1
微修正
answer
CHANGED
@@ -33,9 +33,8 @@
|
|
33
33
|
public class ExclusionPickup : MonoBehaviour
|
34
34
|
{
|
35
35
|
[SerializeField] List<int> list; // 除外する値の含むリスト
|
36
|
+
[SerializeField] int maxValue; // 乱数の最大値
|
36
37
|
|
37
|
-
[SerializeField] int maxValue; // 最大値
|
38
|
-
|
39
38
|
private void Update ()
|
40
39
|
{
|
41
40
|
// マウスの左クリック
|
@@ -44,7 +43,7 @@
|
|
44
43
|
// 乱数で選択
|
45
44
|
var element = Random.Range(0, maxValue);
|
46
45
|
|
47
|
-
// 除外リストの値
|
46
|
+
// 除外リストの値と一致していたら引き直す
|
48
47
|
while ( list.Any ( x => x == element ) )
|
49
48
|
{
|
50
49
|
element = Random.Range ( 0, maxValue );
|