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

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

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

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

335閲覧

一度クリックしたimageをクリック出来ないようにしたいです。

kutigaiinioi-_-

総合スコア4

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2021/08/30 13:56

編集2021/08/31 08:00

現在unityでスマートフォンの間違い探しを制作しているプログラム初心者です。

【やりたい事】
クリックするとスコアが加算されるimageを、一度クリックしたらスコアが加算されないようにしたい。

【現状】
透明のimageをクリックすると丸の画像に切り替わり得点が加算される。
しかし、その丸をもう一度クリックするとスコアが加算されてしまう。

※正解箇所が分かるようにimageは表示し続けたいと考えております。

スクリプトの添削やもっといい方法まちがいさがしの開発方法があればご教示願いたく存じます。
丸画像表示やスコアに関するスクリプトを添付致しますので添削いただけますと幸いです。
よろしくお願い致します。

【丸画像を表示するスクリプト】

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class maru01 : MonoBehaviour { public Image image; private Sprite sprite; // Use this for initialization void Start () { } // Update is called once per frame public void Touch () { { sprite = Resources.Load<Sprite>("marumaru"); image = this.GetComponent<Image>(); image.sprite = sprite; } } }

【スコアを加算するスクリプト】

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4// 今回の追加 5using UnityEngine.SceneManagement; 6using UnityEngine.UI; 7 8public class SUCORE1 : MonoBehaviour 9{ 10 11 public Image image; 12 private Sprite sprite; 13 14 // スコア関連 15 private int score; 16 17 public int currentScore; 18 public int clearScore = 5; 19 20 // Start is called before the first frame update 21 void Start() 22 { 23 Initialize(); 24 } 25 26 // Update is called once per frame 27 void Update() 28 { 29 30 } 31 32 // ゲーム開始前の状態に戻す 33 private void Initialize() 34 { 35 // スコアを0に戻す 36 score = 0; 37 38 } 39 40 // スコアの追加 41 public void AddScore() 42 { 43 // 今回の追加 44 score += 1; 45 currentScore += score; 46 47 48 Debug.Log(currentScore); 49 50 if (currentScore >= clearScore) 51 { 52 GameClear(); 53 //Debug.Log(clearScore); 54 } 55 56 } 57 // GameClearした時の処理 58 // 今回の追加 59 public void GameClear() 60 { 61 62 63 // GameClearした時の処理 64 SceneManager.LoadScene("rizalt"); 65 66 } 67 68 } 69

【スコアを管理するスクリプト】

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class ScoreManager : MonoBehaviour 6{ 7[SerializeField] int m_targetScore = 5; 8int m_score = 0; 9 10public void AddScore() 11{ 12m_score++; 13Debug.Log($"Score: {m_score}"); 14 15if (m_score >= m_targetScore) 16{ 17GameClear(); 18//Debug.Log(clearScore); 19} 20} 21public void GameClear() 22{ 23Invoke("Test", 1.5f); 24} 25private void Test() 26{ 27// GameClearした時の処理 28FadeManager.Instance.LoadScene("rizalt", 1.5f); 29 30} 31}

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

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

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

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

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

guest

回答1

0

ベストアンサー

タッチ時に表示されてるものが、何かによって動作を変えればいいのでは

投稿2021/08/30 14:00

y_waiwai

総合スコア88024

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

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

kutigaiinioi-_-

2021/08/30 14:24

ご回答ありがとうございます。 無知ゆえにその動作の選択肢がなく進めない状態です
y_waiwai

2021/08/30 14:27

なにかを表示させるときに、変数にその画像の名前を代入するようにしとけばいいかと。 その変数を見ることにより、なにが表示されてるのかを知ることができます
kutigaiinioi-_-

2021/08/31 03:01

なるほど変数というものを利用すれば良いんですね! 先ずは変数について勉強します! ありがとうございます!
退会済みユーザー

退会済みユーザー

2021/08/31 10:27

Imageの画像変更ついでに GetComponent<Image>().raycastTarget = falseにしてしまうか?
kutigaiinioi-_-

2021/08/31 13:21

記述いただいたコードを追加したところ【やりたい事】が実現できました! raycastTarget = falseと記載する事でraycastTargetは偽りですよ。となるんですね! 大変勉強にもなりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問