質問: positivesprite; } } } } ``` ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: 恐らく問題となっているのは以下の条件文です。 ``` if (Input.touchCount == 1) ``` これは、「タッチしている数が一つだった場合」という条件になります。 つまり1点タッチさえすれば、すべてのブロックでこのif文の中へ入ってしまうと考えられます。 そこで、以下の対策を行うと良いと思います。 1. Collider2Dコンポーネントを付加する 2. タッチ座標との当たり判定をとる 3. 自身がタッチされているブロックだった場合にスプライト画像を変更する コードにすると恐らく以下のような感じになると思います。 ``` void Update() { if (Input.touchCount == 1) { Vector2 touchPoint = Camera.main.ScreenToWorldPoint (Input.GetTouch(0).position); Collider2D collider = Physics2D.OverlapPoint (touchPoint ); if((collider != null) && (collider.transform.gameObject == this.gameObject)) { istap = true; if (istap == true || isblockinf == false) { blockrenderer.sprite = positivesprite; } } } } ```