現在、Unity2Dについて勉強中の者です。
ふと気になったことと解決しない問題がそれぞれ出たため、僭越ながらここにご質問させていただきます。
いろいろここで質問してみなさんから助言をいただき、ちょこちょこ進めてはいるのですが、結構躓く箇所が多く、自分でも悩ましい限りです。
前回は画像をクリックして色を変えるプログラムを作成していたのですが、1回クリックするごとに色を順番に変えていくプログラムを作成したところで詰まってしまいました。
コードで「赤色が入ってる時に青色を入れる」という風に変更してみても入らなかったです。
C#
1using UnityEngine; 2using System.Collections; 3 4public class Dustdelete : MonoBehaviour { 5 public Sprite[] tiles; //色の画像を入れる配列。計6個で初期状態は0の赤 6 7 // Use this for initialization 8 void Start () { 9 //SpriteRenderer renderer = gameObject.GetComponent<SpriteRenderer> (); 10 } 11 12 // Update is called once per frame 13 void Update () { 14 //現在UnityのSence上にあるスプライトを取得する 15 SpriteRenderer renderer = gameObject.GetComponent<SpriteRenderer> (); 16 //マウスボタン(タップ)が押されたら 17 if (Input.GetMouseButtonDown (0)) { 18 Vector2 tapPoint = Camera.main.ScreenToWorldPoint (Input.mousePosition); //2Dのベクトルを取得する 19 Collider2D collider = Physics2D.OverlapPoint (tapPoint); //タッチされたスプライトを取得する 20 if (collider != null) { //colliderにnullが入っていなければ 21 GameObject obj = collider.transform.gameObject; //ここがよくわかりません・・・ 22 if (obj == this.gameObject) { //タップされたスプライトとobjが同じだったら 23 if (renderer.sprite == tiles [2]) { //スプライトがtilesの2だったら 24 renderer.sprite = tiles [3]; //tilesの3にする 25 } 26 27 renderer.sprite = tiles [2]; //スプライトをtilesの2にする 28 } 29 } 30 } 31 } 32} 33
いろいろ自分で全体の流れをつかめるようにコメントでも入力したのですが、理解が
特にGameobject obj = collider.transform.gameObjectの文も何をしているのかよくわかりません。
コードそのものが今の目的にそぐわないのか、何か見落としてるところがあるのか、もし教えてくださる人がいたらお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。