前回の記事
www.momino1234.com
敵を倒したときに スコアを追加する方法
① スコア管理スクリプトを作る
新しいスクリプトを作成
名前はGameManagerに
コードは
- using UnityEngine;
- using TMPro;
- public class GameManager : MonoBehaviour
- {
- public static int score = 0;
- public TextMeshProUGUI scoreText;
- void Update()
- {
- scoreText.text = "Score: " + score;
- }
- }
② Canvas にスコア表示を作る
Hierarchy欄で
Canvasを右クリック
↓
UI(Canvas)
↓
Text(TextMeshPro)
名前を
ScoreText
にします。
位置をposx、yで調整。
左上がおすすめです。
③ Enemyを倒した時にスコア追加
Bulletスクリプトをこう変更します。
void OnTriggerEnter2D(Collider2D other)
{ の下に
- if (other.CompareTag("Enemy"))
- {
- GameManager.score += 10; // スコア追加
- Destroy(other.gameObject);
- Destroy(gameObject);
- }
を追加
こんな感じに
- using UnityEngine;
- public class BulletMove : MonoBehaviour
- {
- public float speed = 8f;
- void Update()
- {
- transform.position += Vector3.up * speed * Time.deltaTime;
- if (transform.position.y > 6f)
- {
- Destroy(gameObject);
- }
- }
- void OnTriggerEnter2D(Collider2D other)
- {
- if (other.CompareTag("Enemy"))
- {
- Destroy(other.gameObject); // 敵を消す
- Destroy(gameObject); // 弾も消す
- }
- if (other.CompareTag("Enemy"))
- {
- GameManager.score += 10; // スコア追加
- Destroy(other.gameObject);
- Destroy(gameObject);
- }
- }
- }
④ GameManager を配置
Hierarchyで
Create Empty
名前
GameManager
そこに
GameManagerスクリプト
を入れる。
Inspectorの
Score Text
に
Hierarchyの欄のScoreText
をドラッグ。
これで完成
ゲーム中
敵を倒す
↓
Score +10
↓
画面に表示
よくあるミス
✔ ScoreText を GameManager に入れてない
✔ Canvas に Text が無い
✔ Enemy の Tag が Enemy じゃない

次の記事
www.momino1234.com