回答編集履歴
2
修正
answer
CHANGED
@@ -6,24 +6,14 @@
|
|
6
6
|
/// <summary>子要素のアクティブ状態を一括で変更する</summary>
|
7
7
|
public static void ChildObjectSetActive(this Transform transform, bool decision, params string[] exclusion)
|
8
8
|
{
|
9
|
-
|
9
|
+
for (var i = 0; i < transform.childCount; i++)
|
10
|
-
while (true)
|
11
10
|
{
|
11
|
+
// 除外するものと子オブジェクトの名称が一致しているか比較
|
12
|
+
// 一致していなかった場合アクティブ状態を"decision"の値に変更する
|
12
|
-
|
13
|
+
if (!exclusion.Contains(transform.GetChild(i).gameObject.name))
|
13
14
|
{
|
14
|
-
// 除外するものと子オブジェクトの名称が一致しているか比較
|
15
|
-
// 一致していなかった場合アクティブ状態を"decision"の値に変更する
|
16
|
-
if (!exclusion.Contains(transform.GetChild(count).gameObject.name))
|
17
|
-
{
|
18
|
-
|
15
|
+
transform.GetChild(i).gameObject.SetActive(decision);
|
19
|
-
}
|
20
16
|
}
|
21
|
-
// 全ての子オブジェクトが検索できたら
|
22
|
-
catch
|
23
|
-
{
|
24
|
-
break;
|
25
|
-
}
|
26
|
-
count++;
|
27
17
|
}
|
28
18
|
}
|
29
19
|
```
|
1
修正
answer
CHANGED
@@ -1,16 +1,5 @@
|
|
1
|
-
基本的なやり方はそれで合っています。
|
2
|
-
|
1
|
+
若干質問内容とは違いますが,たまたま今自分が作っているゲームで本当に同じような処理を自分が作ったので,それを共有します。
|
3
2
|
|
4
|
-
なのでやり方としては,
|
5
|
-
①子オブジェクトがnullかどうか判定し,nullじゃなかった場合アクティブをfalseにする(if文)
|
6
|
-
というやり方と,
|
7
|
-
②処理が失敗した場合に何か別の処理をさせる(例外処理)
|
8
|
-
の2通りのやり方があります。
|
9
|
-
|
10
|
-
とまぁこれだけでも解けるようになると思うのですが,
|
11
|
-
たまたま今自分が作っているゲームで本当に同じような処理を自分が作ったので,
|
12
|
-
それを共有します。これに関しては質問はなしで,自分で調べてみてください。
|
13
|
-
|
14
3
|
```C#
|
15
4
|
using System.Linq;
|
16
5
|
|