現状できていること
現在buttonを使った処理の練習をしています。現在ButtonにC#を用いた下記のButtonchangerスクリプトをアタッチしておりButtonを押すごとに押したButton自身の色を水色(初期の色)→緑→黄色→オレンジ→赤というように変更するところまではできています。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class Buttonchanger : MonoBehaviour 7{ 8 public int count=0; 9 //ここでカラーを設定 10 [SerializeField] 11 Color btnColor1 = Color.cyan; 12 [SerializeField] 13 Color btnColor2 = Color.green; 14 15 [SerializeField] 16 Color btnColor3 = Color.yellow; 17 18 //inspector上で指定するのでwhiteに仮置き 19 [SerializeField] 20 Color btnColor4 = Color.white; 21 22 [SerializeField] 23 Color btnColor5 = Color.red; 24 25 26 //ボタンをキャッシュする変数 27 Button btn; 28 29 30 void Awake() 31 { 32 //何度もアクセスするのでこの変数にキャッシュ 33 btn = gameObject.GetComponent<Button>(); 34 btn.image.color = btnColor1; 35 } 36 37 void Start() 38 { 39 btn.onClick.AddListener(OnClick); 40 } 41 42 public void OnClick() 43 { 44 count+=1; 45 if (count == 1) 46 {//greenに変更 47 btn.image.color = btnColor2; 48 Debug.Log("押されて緑になりました"); 49 } 50 51 52 if (count == 2) 53 {//黄色に変更 54 btn.image.color = btnColor3; 55 Debug.Log("押されて黄色になりました"); 56 57 } 58 59 if (count == 3) 60 {//オレンジに変更 61 btn.image.color = btnColor4; 62 Debug.Log("押されてオレンジになりました"); 63 } 64 65 if (count == 4) 66 {//赤に変更 67 btn.image.color = btnColor5; 68 Debug.Log("押されて赤になりました"); 69 70 71 } 72 } 73 74 75 76} 77
実現したいこと
このButtonを複数個用意して塗り替えパズルのようなものを作りたいと思っています。
このButtonを6×6マス配置して、適当なButtonを一回押したときは押したButtonだけcountを+1して色が緑に、同じButtonをもう一度押して緑から黄色にするとき、今度はそのButtonだけじゃなく両隣のButtonのcountを+1して自身は黄色に両隣は緑に、さらに黄色の時にもう一度おしたときは左右に加えて上下のButtonのcountを+1して色を変え、自身はオレンジに、オレンジの時にButtonを押したときは上下左右にくわえて斜め方向、つまり押すボタンの周りすべての色を一段階変える。といった処理をしたいと思っています。とても分かりにくい説明になってしまい申し訳ないのですが実現のための解決法やアドバイスを簡単な解説も踏まえて教えていただけたらありがたいです。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/13 07:52
2019/06/14 03:59