UI②(スコアを画面に表示する)
![Efab13e7 fb5b 44b7 b6f1 cb616eda2fb6](https://codegenius.org/uploads/slide/image/608/efab13e7-fb5b-44b7-b6f1-cb616eda2fb6.jpeg)
![0f61efd4 154a 42dd a80c fe7f03efa104](https://codegenius.org/uploads/slide/image/609/0f61efd4-154a-42dd-a80c-fe7f03efa104.jpeg)
![8fcfbd6c 61f2 4d0e bae0 6ea40db8e829](https://codegenius.org/uploads/slide/image/610/8fcfbd6c-61f2-4d0e-bae0-6ea40db8e829.jpeg)
![367fb19e 8f3e 4eff 96c0 b758324c802a](https://codegenius.org/uploads/slide/image/611/367fb19e-8f3e-4eff-96c0-b758324c802a.jpeg)
![36649596 343a 4fa8 9bea ea5b162e801f](https://codegenius.org/uploads/slide/image/612/36649596-343a-4fa8-9bea-ea5b162e801f.jpeg)
スコアを管理する
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// ★追加
using UnityEngine.UI;
public class ScoreManager : MonoBehaviour
{
// ★追加
private int score = 0;
private Text scoreLabel;
void Start()
{
// ★追加
// 「Text」コンポーネントにアクセスして取得する(ポイント)
scoreLabel = this.gameObject.GetComponent<Text>();
scoreLabel.text = "Score " + score;
}
// ★追加
// スコアを加算するメソッド(命令ブロック)
// 「public」をつけて外部からこのメソッドにアクセスできるようにする(重要ポイント)
public void AddScore(int amount)
{
// 「amount」に入ってくる数値分を加算していく。
score += amount;
scoreLabel.text = "Score " + score;
}
}
![9d55a691 8dc3 4244 849a e21ec94d762d](https://codegenius.org/uploads/slide/image/613/9d55a691-8dc3-4244-849a-e21ec94d762d.jpeg)
敵に得点をつける
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class EnemyHealth : MonoBehaviour
{
public GameObject effectPrefab;
public AudioClip destroySound;
public int enemyHP;
private Slider slider;
// ★★追加(スコア)
public int scoreValue;
private ScoreManager sm;
void Start()
{
slider = GameObject.Find("EnemyHPSlider").GetComponent<Slider>();
slider.maxValue = enemyHP;
slider.value = enemyHP;
// ★★追加(スコア)
// 「ScoreLabel」オブジェクトについている「ScoreManager」スクリプトにアクセスして取得する(ポイント)
sm = GameObject.Find("ScoreLabel").GetComponent<ScoreManager>();
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Missile"))
{
GameObject effect = Instantiate(effectPrefab, transform.position, Quaternion.identity);
Destroy(effect, 0.5f);
enemyHP -= 1;
slider.value = enemyHP;
Destroy(other.gameObject);
if (enemyHP == 0)
{
Destroy(transform.root.gameObject);
AudioSource.PlayClipAtPoint(destroySound, transform.position);
// ★★追加(スコア)
// 敵を破壊した瞬間にスコアを加算するメソッドを呼び出す。
// 引数には「scoreValue」を入れる。
sm.AddScore(scoreValue);
}
}
}
}
![E0f875c3 f76f 4f90 bfa5 2f830e03367d](https://codegenius.org/uploads/slide/image/614/e0f875c3-f76f-4f90-bfa5-2f830e03367d.jpeg)
![B090102a fe22 4ee4 9ac4 74545f4f07ba](https://codegenius.org/uploads/slide/image/615/b090102a-fe22-4ee4-9ac4-74545f4f07ba.jpeg)
![540dfd65 cf70 47ad b853 d30d45595037](https://codegenius.org/uploads/slide/image/616/540dfd65-cf70-47ad-b853-d30d45595037.jpeg)
Danmaku I(基礎1/全22回)
他のコースを見る![Efab13e7 fb5b 44b7 b6f1 cb616eda2fb6](https://codegenius.org/uploads/slide/image/608/efab13e7-fb5b-44b7-b6f1-cb616eda2fb6.jpeg)
![0f61efd4 154a 42dd a80c fe7f03efa104](https://codegenius.org/uploads/slide/image/609/0f61efd4-154a-42dd-a80c-fe7f03efa104.jpeg)
![8fcfbd6c 61f2 4d0e bae0 6ea40db8e829](https://codegenius.org/uploads/slide/image/610/8fcfbd6c-61f2-4d0e-bae0-6ea40db8e829.jpeg)
![367fb19e 8f3e 4eff 96c0 b758324c802a](https://codegenius.org/uploads/slide/image/611/367fb19e-8f3e-4eff-96c0-b758324c802a.jpeg)
![36649596 343a 4fa8 9bea ea5b162e801f](https://codegenius.org/uploads/slide/image/612/36649596-343a-4fa8-9bea-ea5b162e801f.jpeg)
スコアを管理する
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// ★追加
using UnityEngine.UI;
public class ScoreManager : MonoBehaviour
{
// ★追加
private int score = 0;
private Text scoreLabel;
void Start()
{
// ★追加
// 「Text」コンポーネントにアクセスして取得する(ポイント)
scoreLabel = this.gameObject.GetComponent<Text>();
scoreLabel.text = "Score " + score;
}
// ★追加
// スコアを加算するメソッド(命令ブロック)
// 「public」をつけて外部からこのメソッドにアクセスできるようにする(重要ポイント)
public void AddScore(int amount)
{
// 「amount」に入ってくる数値分を加算していく。
score += amount;
scoreLabel.text = "Score " + score;
}
}
![9d55a691 8dc3 4244 849a e21ec94d762d](https://codegenius.org/uploads/slide/image/613/9d55a691-8dc3-4244-849a-e21ec94d762d.jpeg)
敵に得点をつける
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class EnemyHealth : MonoBehaviour
{
public GameObject effectPrefab;
public AudioClip destroySound;
public int enemyHP;
private Slider slider;
// ★★追加(スコア)
public int scoreValue;
private ScoreManager sm;
void Start()
{
slider = GameObject.Find("EnemyHPSlider").GetComponent<Slider>();
slider.maxValue = enemyHP;
slider.value = enemyHP;
// ★★追加(スコア)
// 「ScoreLabel」オブジェクトについている「ScoreManager」スクリプトにアクセスして取得する(ポイント)
sm = GameObject.Find("ScoreLabel").GetComponent<ScoreManager>();
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Missile"))
{
GameObject effect = Instantiate(effectPrefab, transform.position, Quaternion.identity);
Destroy(effect, 0.5f);
enemyHP -= 1;
slider.value = enemyHP;
Destroy(other.gameObject);
if (enemyHP == 0)
{
Destroy(transform.root.gameObject);
AudioSource.PlayClipAtPoint(destroySound, transform.position);
// ★★追加(スコア)
// 敵を破壊した瞬間にスコアを加算するメソッドを呼び出す。
// 引数には「scoreValue」を入れる。
sm.AddScore(scoreValue);
}
}
}
}
![E0f875c3 f76f 4f90 bfa5 2f830e03367d](https://codegenius.org/uploads/slide/image/614/e0f875c3-f76f-4f90-bfa5-2f830e03367d.jpeg)
![B090102a fe22 4ee4 9ac4 74545f4f07ba](https://codegenius.org/uploads/slide/image/615/b090102a-fe22-4ee4-9ac4-74545f4f07ba.jpeg)
![540dfd65 cf70 47ad b853 d30d45595037](https://codegenius.org/uploads/slide/image/616/540dfd65-cf70-47ad-b853-d30d45595037.jpeg)
UI②(スコアを画面に表示する)