質問するログイン新規登録

回答編集履歴

1

追記

2021/08/31 05:48

投稿

YAmaGNZ
YAmaGNZ

スコア10688

answer CHANGED
@@ -50,4 +50,35 @@
50
50
  これを行列のように81通りというのがよく分かりません。
51
51
 
52
52
  蛇足かもしれませんがNumberControllerクラスのほうで
53
- Updateメソッド内で`rightnumrandom==1`と判定していますが、rightnumrandomはStartメソッドにてrightnumrandomを乱数からセットしているだけで変化しませんがいいのでしょうか?
53
+ Updateメソッド内で`rightnumrandom==1`と判定していますが、rightnumrandomはStartメソッドにてrightnumrandomを乱数からセットしているだけで変化しませんがいいのでしょうか?
54
+
55
+ ---
56
+ ### 追記
57
+
58
+ 今一理解し切れていないのですがmigibapos.xの値によっての条件判断のようですから1~9の複数がヒットすることはないと思います。
59
+ なので
60
+
61
+ ```C#
62
+ if (migibapos.x <= 3.551f && migibapos.x >= 1.472f)
63
+ {
64
+ int nowPosition = (int)((3.551f- migibapos.x) / 0.231f);
65
+ for (int i = 0; i < rightbar.Length; i++) rightbar[i] = false;
66
+
67
+ if(rightarea[nowPosition] == true)
68
+ {
69
+ rightbar[nowPosition] = true;
70
+ Debug.Log($"右{nowPosition + 1} OK");
71
+ }
72
+ else
73
+ {
74
+ Debug.Log("右なし");
75
+ }
76
+ }
77
+ else
78
+ {
79
+ Debug.Log("右なし");
80
+ }
81
+ ```
82
+ といった感じでmigibapos.xからどの位置に該当するか計算し、そこが有効なのかという方法でいいように思えます。
83
+ そうすればループする必要もなくなりますしleftareaも同様に求めて、それが有効なのか調べればいいように思います。
84
+ どうしても9X9の判断が必要であれば、takasima20さんの仰るように2重ループで処理を行うのがいいでしょう。