前提・実現したいこと
Unityでブロックをタップすると、そのブロックだけSpriteを変更したいと考えています。
発生している問題・エラーメッセージ
画面上には複数の同じブロックが配置されているのですが、一つタップをすると 全部のブロックのスプライトが変わってしまいます。 タップしたブロックだけを変えたいのですが、どこの部分を変えればいいか分からず困っています。 素人なので、見るに堪えないコードだとは思いますが、ご教授頂けたら、幸いです。 ```![イメージ説明](3e5c1cd4b974169d5507a385701ccc48.gif) ### 該当のソースコード ```C# // フィールド // Positiveブロックをタップしている状態か private bool istap; // ブロックが感染しているか private bool isblockinf; // touchカウント private int touchcount; // ゲームオブジェクトの位置 private Vector2 position; // Sprite用変数 public Sprite positivesprite; // レンダラー取得用変数 private SpriteRenderer blockrenderer; // Use this for initialization void Start() { // このブロックのレンダラーを取得 blockrenderer = gameObject.GetComponent<SpriteRenderer>(); // ブロックの状態を初期化 isblockinf = false; } // Update is called once per frame void Update() { // テスト用タッチ処理 /*if(Input.touchCount == 1) { touchcount++; Debug.Log(touchcount + "touchされました"); } */ // もし、ブロックに触れたら if (Input.touchCount == 1) { // もし、ポジティブブロックに触れた後に、ブロックに触れていたら || なおかつ、触れたブロックが感染していなければ istap = true; if (istap == true || isblockinf == false) { // ブロックをポジティブブロックに置き換える処理。 // 触れたブロックの位置を取得して、収める。 // position = this.transform.position; // 触れたブロックをポジティブブロックのプレファブに入れ替える。 blockrenderer.sprite = positivesprite; } } } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/26 21:43
2018/05/26 23:19