UI②(スコアを画面に表示する)
![Be78241d e9a4 48f8 8547 e3b3103dde54](https://codegenius.org/uploads/slide/image/4665/be78241d-e9a4-48f8-8547-e3b3103dde54.jpeg)
![29c51856 9dc7 4b9b b665 c40ab1c10d13](https://codegenius.org/uploads/slide/image/4666/29c51856-9dc7-4b9b-b665-c40ab1c10d13.jpeg)
![9a75d721 57f7 4a21 8eaf b76dcd5a9152](https://codegenius.org/uploads/slide/image/4667/9a75d721-57f7-4a21-8eaf-b76dcd5a9152.jpeg)
![B54f8314 399a 4ba8 b04f e81f1e4f673b](https://codegenius.org/uploads/slide/image/4668/b54f8314-399a-4ba8-b04f-e81f1e4f673b.jpeg)
![20dcebfe 5532 4919 8e25 a6ceed87ad91](https://codegenius.org/uploads/slide/image/4669/20dcebfe-5532-4919-8e25-a6ceed87ad91.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 = GetComponent<Text>();
scoreLabel.text = "SCORE:" + score;
}
// ★追加
// スコアを加算するメソッド(命令ブロック)
// 「public」をつけて外部からこのメソッドにアクセスできるようにする(重要ポイント)
public void AddScore(int amount)
{
// 「amount」に入ってくる数値分を加算していく。
score += amount;
scoreLabel.text = "SCORE:" + score;
}
}
![C88dc5a4 e7b4 4c9f bcb7 23996065fef7](https://codegenius.org/uploads/slide/image/4670/c88dc5a4-e7b4-4c9f-bcb7-23996065fef7.jpeg)
スコアの加算
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class EnemyHealth : MonoBehaviour
{
public GameObject effectPrefab;
public AudioClip sound;
public int enemyHP;
public Slider hpSlider;
// ★★追加(スコア)
public int scoreValue;
private ScoreManager sm;
private void Start()
{
hpSlider.maxValue = enemyHP;
hpSlider.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;
Destroy(other.gameObject);
hpSlider.value = enemyHP;
if(enemyHP == 0)
{
Destroy(transform.root.gameObject);
AudioSource.PlayClipAtPoint(sound, Camera.main.transform.position);
// ★★追加(スコア)
// 敵を破壊した瞬間にスコアを加算するメソッドを呼び出す。
// 引数には「scoreValue」を入れる。
sm.AddScore(scoreValue);
}
}
}
}
![90c4a054 2309 4944 86d8 0a3473a65a02](https://codegenius.org/uploads/slide/image/4671/90c4a054-2309-4944-86d8-0a3473a65a02.jpeg)
![Cb1cd18b c4bb 403e a198 9ebf73b430f8](https://codegenius.org/uploads/slide/image/4672/cb1cd18b-c4bb-403e-a198-9ebf73b430f8.jpeg)
![A720ed2c eb2e 43f8 94d3 ba34bd3fbe5f](https://codegenius.org/uploads/slide/image/4673/a720ed2c-eb2e-43f8-94d3-ba34bd3fbe5f.jpeg)
【2019版】Danmaku I(基礎1/全22回)
他のコースを見る![Be78241d e9a4 48f8 8547 e3b3103dde54](https://codegenius.org/uploads/slide/image/4665/be78241d-e9a4-48f8-8547-e3b3103dde54.jpeg)
![29c51856 9dc7 4b9b b665 c40ab1c10d13](https://codegenius.org/uploads/slide/image/4666/29c51856-9dc7-4b9b-b665-c40ab1c10d13.jpeg)
![9a75d721 57f7 4a21 8eaf b76dcd5a9152](https://codegenius.org/uploads/slide/image/4667/9a75d721-57f7-4a21-8eaf-b76dcd5a9152.jpeg)
![B54f8314 399a 4ba8 b04f e81f1e4f673b](https://codegenius.org/uploads/slide/image/4668/b54f8314-399a-4ba8-b04f-e81f1e4f673b.jpeg)
![20dcebfe 5532 4919 8e25 a6ceed87ad91](https://codegenius.org/uploads/slide/image/4669/20dcebfe-5532-4919-8e25-a6ceed87ad91.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 = GetComponent<Text>();
scoreLabel.text = "SCORE:" + score;
}
// ★追加
// スコアを加算するメソッド(命令ブロック)
// 「public」をつけて外部からこのメソッドにアクセスできるようにする(重要ポイント)
public void AddScore(int amount)
{
// 「amount」に入ってくる数値分を加算していく。
score += amount;
scoreLabel.text = "SCORE:" + score;
}
}
![C88dc5a4 e7b4 4c9f bcb7 23996065fef7](https://codegenius.org/uploads/slide/image/4670/c88dc5a4-e7b4-4c9f-bcb7-23996065fef7.jpeg)
スコアの加算
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class EnemyHealth : MonoBehaviour
{
public GameObject effectPrefab;
public AudioClip sound;
public int enemyHP;
public Slider hpSlider;
// ★★追加(スコア)
public int scoreValue;
private ScoreManager sm;
private void Start()
{
hpSlider.maxValue = enemyHP;
hpSlider.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;
Destroy(other.gameObject);
hpSlider.value = enemyHP;
if(enemyHP == 0)
{
Destroy(transform.root.gameObject);
AudioSource.PlayClipAtPoint(sound, Camera.main.transform.position);
// ★★追加(スコア)
// 敵を破壊した瞬間にスコアを加算するメソッドを呼び出す。
// 引数には「scoreValue」を入れる。
sm.AddScore(scoreValue);
}
}
}
}
![90c4a054 2309 4944 86d8 0a3473a65a02](https://codegenius.org/uploads/slide/image/4671/90c4a054-2309-4944-86d8-0a3473a65a02.jpeg)
![Cb1cd18b c4bb 403e a198 9ebf73b430f8](https://codegenius.org/uploads/slide/image/4672/cb1cd18b-c4bb-403e-a198-9ebf73b430f8.jpeg)
![A720ed2c eb2e 43f8 94d3 ba34bd3fbe5f](https://codegenius.org/uploads/slide/image/4673/a720ed2c-eb2e-43f8-94d3-ba34bd3fbe5f.jpeg)
UI②(スコアを画面に表示する)