回答編集履歴

3

要件ミスにつき修正

2020/05/26 08:11

投稿

sakura_hana
sakura_hana

スコア11427

test CHANGED
@@ -24,15 +24,23 @@
24
24
 
25
25
  if(Input.GetMouseButtonDown(1)) {
26
26
 
27
+ bool isRed;
28
+
27
29
  foreach(Transform child in ParentModel) {
28
30
 
29
31
  if (child.GetComponent<Renderer>().material.color == Color.red) {
30
32
 
31
- // メニュー開く処理
33
+ isRed = true;
32
34
 
33
35
  break;
34
36
 
35
37
  }
38
+
39
+ }
40
+
41
+ if (!isRed) {
42
+
43
+ //メニューを開く処理
36
44
 
37
45
  }
38
46
 

2

コメントを受けて追記

2020/05/26 08:11

投稿

sakura_hana
sakura_hana

スコア11427

test CHANGED
@@ -11,3 +11,37 @@
11
11
  `if(Input.GetMouseButtonDown(1) && !isSelecting)`
12
12
 
13
13
  などとした方がいいかなと思います/変数名は適当)
14
+
15
+
16
+
17
+ ---
18
+
19
+
20
+
21
+ foreachを使って子をチェックする書き方だとこんな感じ。
22
+
23
+ ```C#
24
+
25
+ if(Input.GetMouseButtonDown(1)) {
26
+
27
+ foreach(Transform child in ParentModel) {
28
+
29
+ if (child.GetComponent<Renderer>().material.color == Color.red) {
30
+
31
+ // メニュー開く処理
32
+
33
+ break;
34
+
35
+ }
36
+
37
+ }
38
+
39
+ }
40
+
41
+ ```
42
+
43
+ foreachの使用は最小限にしたいので右クリック時の処理に入れてしまっていますが、
44
+
45
+ これ見て分かる通りやっぱり煩雑なので選択中フラグ(bool変数)を用意した方がいいと思います。
46
+
47
+ (もう少し慣れたら「Linq」というものを調べてみると多少は楽になるかもしれません。多少ですが)

1

誤字修正

2020/05/26 02:44

投稿

sakura_hana
sakura_hana

スコア11427

test CHANGED
@@ -10,4 +10,4 @@
10
10
 
11
11
  `if(Input.GetMouseButtonDown(1) && !isSelecting)`
12
12
 
13
- ようにした方がいいかなと思います/変数名は適当)
13
+ などとした方がいいかなと思います/変数名は適当)