質問: ### 前提・実現したいこと Unityで順番にオブジェクトをクリックしたら、処理を行いたいです。 そろばんの正解の珠を順番にクリックして、正解判定を出したいのですが、 うまくいきません。 ### ソースコード ソースコードはこちらです。 // 正解の球をクリックならコレクト if(obj.name.Contains("Ichi")) { if (obj.name.Contains("Ni")) { Correct(gameObject); } } これだと、IchiとNiをオブジェクトが名前に含んでいたら、正解にするということになってしまいます。 IchiNiをクリックした→正解(になってしまう) Ichiをクリックした→Niをクリックした→正解 にしたいです。 色々試しましたが、結局できませんでした。 一度順番にクリックするのはできたのですが、 Ichi→Ni→正解でも Ni→Ichi→正解でも反応してしまいました。 必ずIchi→Ni→正解の順番にしたいです。 ### 補足情報 https://qiita.com/norioc/items/e6b86f9d3031a5b65397 こちらのサイトのソースコードはそろばんで使う際よくわかりませんでした。 こちらのサイトのソースコードも解説していただけると助かります。
回答: > > これだと、IchiとNiをオブジェクトが名前に含んでいたら、正解にするということになってしまいます。 > > IchiNiをクリックした→正解(になってしまう) > > > 名前に特定の文字列を含んでいたらという条件式はよろしくないです。 まずはTag判別かオブジェクト毎に判別する為のIDを割り振る様に変更した方が良いです。 > > Ichiをクリックした→Niをクリックした→正解 > > にしたいです。 > > 色々試しましたが、結局できませんでした。 > > 一度順番にクリックするのはできたのですが、 > > Ichi→Ni→正解でも > > Ni→Ichi→正解でも反応してしまいました。 > > 必ずIchi→Ni→正解の順番にしたいです。 > > > `bool ichi;`の様にフラグとなる変数を用意しておきIchiをクリックした条件式内でこれを`ichi = true;`して下さい。 そしてNiの条件式にこのフラグも含めればIchi→Ni→正解の順番処理は可能になります。 > > こちらのサイトのソースコードも解説していただけると助かります。 > > > ボタンを押す毎にbuttonに対応した引数を渡してswitch文に移行し下記が実行されます。 正解:stepとbuttonが共に正ならばstepを1増やして処理を終えます。 不正解:stepとbuttonが共に正で無いならばswitch文以下でボタンを最初の状態に戻して処理を終えます。 そのサイトでも解説されているのでそれ以上噛み砕くというのは中々難しいですね。 UniRxは記述方式が少し特殊なのでそういうものだと思って覚えていくしかないです。