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

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

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

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

コードレビュー

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1621閲覧

unityでimageをクリックして得点を加算したいです

kutigaiinioi-_-

総合スコア4

Unity

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

コードレビュー

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/08/16 14:51

unityでまちがいさがしゲームを作っているPG初心者です。

unityのimageをクリックすると得点が加算される方法を試しているのですがスクリプトのせいか何なのかなかなか実働画面で
得点の加算をしてくれません。
スクリプトの添削やもっといい方法まちがいさがしの開発方法があればご教授願いたく存じます。

スクリプトを添付致しますので添削いただけますと幸いです。よろしくお願い致します。

呼び出される側の得点スクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 今回の追加
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class SUCORE1 : MonoBehaviour
{

public Image image; private Sprite sprite; // スコア関連 private int score; public int currentScore; public int clearScore = 5; // Start is called before the first frame update void Start() { Initialize(); } // Update is called once per frame void Update() { } // ゲーム開始前の状態に戻す private void Initialize() { // スコアを0に戻す score = 0; } // スコアの追加 public void AddScore() { // 今回の追加 score += 1; currentScore += score; Debug.Log(currentScore); if (currentScore >= clearScore) { GameClear(); //Debug.Log(clearScore); } } // GameClearした時の処理 // 今回の追加 public void GameClear() { // GameClearした時の処理 SceneManager.LoadScene("rizalt"); } }
エラーメッセージ

クリックで呼び出す側のスクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Sucore : MonoBehaviour
{
public Image image;
int score = 0; // スコア

public void AddScore() { score++; // Update is called once per frame void Update() { //左クリックを受け付ける if (Input.GetMouseButtonDown(0)) { FindObjectOfType<SUCORE1>().AddScore(); Debug.Log("+1"); // スコアを加算 score += 1; } } } }
c++です。

一言

初心者ですのでコードの仕組みも分かっておらずひどい有様かとはおもいますが何卒よろしくお願い致します。

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

Visual Studio2019
Unity2020 3.15 です。

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

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

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

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

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

episteme

2021/08/16 15:41

C# ですよね?
kutigaiinioi-_-

2021/08/16 16:09

記載ミスで申し訳ございません。 おそらくC#です。 visual studioとunityで使用言語の選択等はせずに使用している言語です。 曖昧な返答で申し訳ございません。
guest

回答1

0

ベストアンサー

unityのimageをクリックすると得点が加算される方法を試しているのですがスクリプトのせいか何なのかなかなか実働画面で得点の加算をしてくれません。

「実働画面」とは Game ビューのことだと思いますが、Game ビュー上にスコアの値を表示する処理がないですね。

追記 コメントで述べている「動いている様子」と「コード」

動いている様子

コード

csharp

1using UnityEngine; 2 3public class ScoreManager : MonoBehaviour 4{ 5 [SerializeField] int m_targetScore = 5; 6 int m_score = 0; 7 8 public void AddScore() 9 { 10 m_score++; 11 Debug.Log($"Score: {m_score}"); 12 13 if (m_score >= m_targetScore) 14 { 15 Debug.Log("Clear."); 16 } 17 } 18}

投稿2021/08/16 16:38

編集2021/08/17 03:30
bboydaisuke

総合スコア5308

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

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

kutigaiinioi-_-

2021/08/16 16:47

スコアを表示させたい訳ではなく、imageをクリックして1得点、これを5箇所行い5得点すれば次のシーンに移る処理をしたいのです。 説明不足で申し訳ございません。
bboydaisuke

2021/08/16 16:53

説明不足ではなく「説明が正しくなかった」ということですね。そういうことがやりたいならば、Event Trigger コンポーネントを各 Image にアタッチして、クリックされたらスコアを管理するオブジェクトのスコアを加算する関数を呼び出すように設定して自分自身を破棄し、スコアを管理するクラスではスコアが一定値を超えたらやりたい事をやらせるようにすればよいでしょう。 Event Trigger については調べてみてください。 今のやり方では、クリックしたら何をクリックしたかに関わらず得点されてしまい、「Image をクリックしたかどうか」を判定する処理がありません。スクリプトを組むより Unity に用意されている Event Trigger を使うのが楽です。
kutigaiinioi-_-

2021/08/17 03:11

言葉の訂正もしていただきありがとうございます。 Event Triggerの使い方少し理解する事が出来ました。ありがとうございます。 ですが、変わらずGameObjectにアタッチしているスクリプトのCurrent Scoreが0のまま加算されません。(画面のどこをクリックしても) アタッチする箇所やスクリプトが間違っているのでしょうか。
kutigaiinioi-_-

2021/08/17 04:02

教えて頂いたとおりに試してみた結果、得点がうまく加算するように作動してくれました! コードや動いている様子を見せて頂いたり、何度も丁寧に教えて頂きまして本当にありがとうございます。 お陰様でゲーム開発が大幅に進めることが出来るようになります! 是非ベストアンサーにさせて頂きます!本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問