質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1210閲覧

Debug.Logが反応しない

ichigo_0308

総合スコア41

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/06/06 07:17

前提・実現したいこと

Unityで戦闘ゲーム的なものを作っています。
タップした場所を取得しその位置に応じてheartが増えたり増えなかったりする機構を作っています。
ですが、その機構を作っている途中に、あるバグ?で困っています。

発生している問題・エラーメッセージ

エラーメッセージはありません。

該当のソースコード

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5using UnityEngine.SceneManagement; 6 7public class fightManagear : MonoBehaviour 8{ 9 bool mopen = true; 10 public Sprite sprite; 11 public Sprite sprite1; 12 public Sprite Item; 13 public Sprite Item1; 14 public Sprite Item2; 15 public Sprite Item3; 16 public Sprite Item4; 17 public Sprite Item5; 18 public Text Lifetext; 19 public int heart = 100; 20 public int heart2 = PlayerPrefs.GetInt("level")*100; 21 public AudioClip damageSE; 22 AudioSource aud; 23 float fo = 0; 24 int i; 25 bool tap = false; 26 int color; 27 int color2; 28 // Start is called before the first frame update 29 void Start() 30 { 31 aud = GetComponent<AudioSource>(); 32 i = Random.Range(1, 6); 33 if (i == 1) 34 { 35 GameObject.Find("Item").GetComponent<SpriteRenderer>().sprite = Item; 36 } 37 else if (i == 2) 38 { 39 GameObject.Find("Item").GetComponent<SpriteRenderer>().sprite = Item1; 40 } 41 else if (i == 3) 42 { 43 GameObject.Find("Item").GetComponent<SpriteRenderer>().sprite = Item2; 44 } 45 else if (i == 4) 46 { 47 GameObject.Find("Item").GetComponent<SpriteRenderer>().sprite = Item3; 48 } 49 else if (i == 5) 50 { 51 GameObject.Find("Item").GetComponent<SpriteRenderer>().sprite = Item4; 52 } 53 else if (i == 6) 54 { 55 GameObject.Find("Item").GetComponent<SpriteRenderer>().sprite = Item5; 56 } 57 58 } 59 60 // Update is called once per frame 61 void Update() 62 { 63 fo += Time.deltaTime; 64 if (fo >= 1) 65 { 66 Attack(); 67 fo = 0; 68 if (mopen) 69 { 70 GameObject.Find("monster07").GetComponent<SpriteRenderer>().sprite = sprite1; 71 mopen = false; 72 } 73 else 74 { 75 GameObject.Find("monster07").GetComponent<SpriteRenderer>().sprite = sprite; 76 mopen = true; 77 } 78 79 } 80 if (heart <= 0) 81 { 82 SceneManager.LoadScene("GameOverScene"); 83 } 84 if (Input.GetMouseButtonDown(0)) 85 { 86 // クリック・タップした瞬間の座標 87 var pos = Camera.main.ScreenToWorldPoint(Input.mousePosition + Camera.main.transform.forward); 88 if (pos.x <= -1.2) 89 { 90 //Debug.Log("R"); 91 tap = true; 92 color = 1; 93 } 94 else if (pos.x > 1.0) 95 { 96 //Debug.Log("B"); 97 tap = true; 98 color = 2; 99 } 100 else if (pos.y > 0.5) 101 { 102 //Debug.Log("G"); 103 tap = true; 104 color = 3; 105 } 106 i = Random.Range(1, 6); 107 if (tap) 108 { 109 if (i == 1) 110 { 111 GameObject.Find("Item").GetComponent<SpriteRenderer>().sprite = Item; 112 color2 = 1; 113 114 } 115 else if (i == 2) 116 { 117 GameObject.Find("Item").GetComponent<SpriteRenderer>().sprite = Item1; 118 color2 = 2; 119 } 120 else if (i == 3) 121 { 122 GameObject.Find("Item").GetComponent<SpriteRenderer>().sprite = Item2; 123 color2 = 1; 124 } 125 else if (i == 4) 126 { 127 GameObject.Find("Item").GetComponent<SpriteRenderer>().sprite = Item3; 128 color2 = 3; 129 } 130 else if (i == 5) 131 { 132 GameObject.Find("Item").GetComponent<SpriteRenderer>().sprite = Item4; 133 color = 2; 134 } 135 else if (i == 6) 136 { 137 GameObject.Find("Item").GetComponent<SpriteRenderer>().sprite = Item5; 138 color2 = 3; 139 } 140 clickd(); 141 } 142 143 } 144 } 145 public void Attack() 146 { 147 aud.PlayOneShot(damageSE); 148 heart -= PlayerPrefs.GetInt("level")*2; 149 Lifetext.text = "HP: " + heart; 150 } 151 public void clickd() 152 { 153 if(color==color2) 154 { 155 heart2 -= 1; 156 Debug.Log("Attack"); 157 } 158 } 159} 160

最後の方のDebug.Log("Attack"); が反応していないようで、最初の1回は出るのですがそれ以降出ません。
Unityに詳しい方、ご回答よろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

バージョンは2018.4.12f1です。
Android版です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura_hana

2020/06/06 07:28

怪しい所にもっとDebug.Logを配置して「どこまで正常に動いているのか」「どの変数が何の値か(それは想定通りか)」を探りましょう。 clickdの先頭(ifの外側)に「Debug.Log(color+" "+color2);」、Update内で「Debug.Log(tap);」など、特にifの条件を確認するといいです。
ichigo_0308

2020/06/06 07:33

ありがとうございます!参考にしていただきます!
guest

回答1

0

ベストアンサー

知らないとうっかりやっちゃう系の話ですが、「Console」の「Collapse」をONにしていると、同じメッセージは一個しか表示されず、右に回数が表示されますが、そんなことはないですか。

イメージ説明

投稿2020/06/06 10:13

katsuko

総合スコア3536

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ichigo_0308

2020/06/07 01:44

すみません????直すとできました Unity初心者なので優しく教えてくださいって大変勉強になりました。ありかとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問