Unity3D スコア表示とタップによるスコアアップ方法
■Unityのスコア表示とタップ(PCの場合は左クリック)によるスコアアップ方法の備忘録
特に2D・3Dのどちらでも同じような実装方法だが今回は3D版を選択
①Unityの新規プロジェクトを作成
②ヒエラルキーウィンドウから「Create」⇒「Create Empty」を押下し、GameObjectを作成
※今後の拡張も考慮して、スコアアップのスクリプトは後ほどこのGameObjectにアタッチすることにする
③ヒエラルキーウィンドウから「Create」⇒「UI」⇒「Text」を押下し、Text内容を「Score:0」に変更
※自動的にCanvas配下に「Text」が作成される
④プロジェクトウィンドウから「Create」⇒「Folder」を押下し、「Scripts」フォルダを作成する
⑤④で作成した「Scripts」フォルダ配下に「GameManager.cs」という名称でスクリプトを作成
⑥⑤で作成した「GameManager.cs」に下記内容を記述
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//【scoreText.GetComponent().text】を使用する為のパッケージをインポート
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
//画面に表示するスコア
GameObject scoreText;
//実際のスコア
int score;
// Start is called before the first frame update
void Start()
{
//ヒエラルキーウィンドウのTextのGameObjectを取得し、scoreTextをセット
scoreText = GameObject.Find("Text");
}
// Update is called once per frame
void Update()
{
//スマホをタップ(PCの場合は左クリック)した場合
if (Input.GetMouseButtonDown(0)) {
//スコアを「1」増やす
score += 1;
//ゲーム内のスコア表示をセット
scoreText.GetComponent().text = "Score:" + score;
}
}
}
⑦⑥で作成した「GameManager.cs」をヒエラルキーウィンドウの「GameObject」ドラッグしてアタッチ
※アタッチされている状態
⑧再生してタップ(左クリック)毎にスコアが増加することが確認できればOK
上記の方法以外に、もっと簡単な方法があるのでついでに書き残しておく
⑤までの流れは同じなので⑥から記述
⑥⑤で作成した「GameManager.cs」に下記内容を記述
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//【scoreText.GetComponent().text】を使用する為のパッケージをインポート
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
//画面に表示するスコア
//「public」で宣言
public GameObject scoreText;
//実際のスコア
int score;
// Start is called before the first frame update
void Start()
{
//ヒエラルキーウィンドウのTextのGameObjectを取得し、scoreTextをセット
//「scoreText」を「public」で宣言したので不要な為、コメントアウト
//scoreText = GameObject.Find("Text");
}
// Update is called once per frame
void Update()
{
//スマホをタップ(PCの場合は左クリック)した場合
if (Input.GetMouseButtonDown(0)) {
//スコアを「1」増やす
score += 1;
//ゲーム内のスコア表示をセット
scoreText.GetComponent().text = "Score:" + score;
}
}
}
⑦ヒエラルキーウィンドウの「GameObject」を選択するとインスペクターに「Score Text」が表示されているので、ヒエラルキーウィンドウの「Text」をドラッグする
⑧再生してタップ(左クリック)毎にスコアが増加することが確認できればOK