プレーヤーのステータス③(残機数を画面に表示する)
![Bae7998c 75dd 40d0 9dc2 795a30d3d30a](https://codegenius.org/uploads/slide/image/845/bae7998c-75dd-40d0-9dc2-795a30d3d30a.jpeg)
![91a4eb6c 2416 4a75 b6fd 6975f49c9e12](https://codegenius.org/uploads/slide/image/846/91a4eb6c-2416-4a75-b6fd-6975f49c9e12.jpeg)
![0aac1e1a 0698 448f 8ff0 81b454f4f1b9](https://codegenius.org/uploads/slide/image/847/0aac1e1a-0698-448f-8ff0-81b454f4f1b9.jpeg)
![A7fb2f2c 53a0 47a8 99cc bdb129f51522](https://codegenius.org/uploads/slide/image/848/a7fb2f2c-53a0-47a8-99cc-bdb129f51522.jpeg)
![181bc0bc ffdb 47b7 9d03 a8c912abf488](https://codegenius.org/uploads/slide/image/849/181bc0bc-ffdb-47b7-9d03-a8c912abf488.jpeg)
![98a44428 941d 4e38 bc1f 561c59f22a98](https://codegenius.org/uploads/slide/image/850/98a44428-941d-4e38-bc1f-561c59f22a98.jpeg)
![Eb34faa3 eb61 4bf5 bf3b a78ae241955f](https://codegenius.org/uploads/slide/image/851/eb34faa3-eb61-4bf5-bf3b-a78ae241955f.jpeg)
![23cba504 270c 4f7c ac36 bb1e7516e54b](https://codegenius.org/uploads/slide/image/852/23cba504-270c-4f7c-ac36-bb1e7516e54b.jpeg)
![05e3ad6b bd70 4799 86aa 22751798a6cd](https://codegenius.org/uploads/slide/image/853/05e3ad6b-bd70-4799-86aa-22751798a6cd.jpeg)
![F26a0d6c 6fc2 4a10 a81f 2095278daea0](https://codegenius.org/uploads/slide/image/854/f26a0d6c-6fc2-4a10-a81f-2095278daea0.jpeg)
![34bcbac0 47b3 4eff 9b60 eaf53a6b9e25](https://codegenius.org/uploads/slide/image/855/34bcbac0-47b3-4eff-9b60-eaf53a6b9e25.jpeg)
![B2cbf05b 1561 45b4 8791 8d5fc2a4cd1f](https://codegenius.org/uploads/slide/image/856/b2cbf05b-1561-45b4-8791-8d5fc2a4cd1f.jpeg)
![6ab089a4 a833 4a3f bf1f 17aee2ec02fb](https://codegenius.org/uploads/slide/image/857/6ab089a4-a833-4a3f-bf1f-17aee2ec02fb.jpeg)
HPが0になったら残機数のアイコンを1つ減らす
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayerHealth : MonoBehaviour
{
public GameObject effectPrefab;
public AudioClip damageSound;
public AudioClip destroySound;
public int playerHP;
private Slider playerHPSlider;
// ★(追加)
// 配列の定義(「複数のデータ」を入れることのできる「仕切り」付きの箱を作る)
public GameObject[] playerIcons;
// ★(追加)
// プレーヤーが破壊された回数のデータを入れる箱
public int destroyCount = 0;
private void Start()
{
playerHPSlider = GameObject.Find("PlayerHPSlider").GetComponent<Slider>();
playerHPSlider.maxValue = playerHP;
playerHPSlider.value = playerHP;
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("EnemyMissile"))
{
playerHP -= 1;
AudioSource.PlayClipAtPoint(damageSound, Camera.main.transform.position);
playerHPSlider.value = playerHP;
Destroy(other.gameObject);
if (playerHP == 0)
{
// ★(追加)
// HPが0になったら破壊された回数を1つ増加させる。
destroyCount += 1;
// ★(追加)
// 命令ブロック(メソッド)を呼び出す。
UpdatePlayerIcons();
GameObject effect = Instantiate(effectPrefab, transform.position, Quaternion.identity);
Destroy(effect, 1.0f);
AudioSource.PlayClipAtPoint(destroySound, Camera.main.transform.position);
this.gameObject.SetActive(false);
}
}
}
// ★(追加)
// プレーヤーの残機数を表示する命令ブロック(メソッド)
void UpdatePlayerIcons()
{
// for文(繰り返し文)・・・まずは基本形を覚えましょう!
for (int i = 0; i < playerIcons.Length; i++)
{
if (destroyCount <= i)
{
playerIcons[i].SetActive(true);
}
else
{
playerIcons[i].SetActive(false);
}
}
}
}
![6229c956 f319 4a68 ab80 b0fa39326686](https://codegenius.org/uploads/slide/image/858/6229c956-f319-4a68-ab80-b0fa39326686.jpeg)
![F964b854 3a5f 4116 84dc 6ef4ac809b81](https://codegenius.org/uploads/slide/image/859/f964b854-3a5f-4116-84dc-6ef4ac809b81.jpeg)
![Fd81abed 6653 47fd a6cd 3aec7bbb05fa](https://codegenius.org/uploads/slide/image/860/fd81abed-6653-47fd-a6cd-3aec7bbb05fa.jpeg)
![40e4c1d0 5b29 437c a5bd cb9376f551b6](https://codegenius.org/uploads/slide/image/861/40e4c1d0-5b29-437c-a5bd-cb9376f551b6.jpeg)
Danmaku I(基礎1/全22回)
他のコースを見る![Bae7998c 75dd 40d0 9dc2 795a30d3d30a](https://codegenius.org/uploads/slide/image/845/bae7998c-75dd-40d0-9dc2-795a30d3d30a.jpeg)
![91a4eb6c 2416 4a75 b6fd 6975f49c9e12](https://codegenius.org/uploads/slide/image/846/91a4eb6c-2416-4a75-b6fd-6975f49c9e12.jpeg)
![0aac1e1a 0698 448f 8ff0 81b454f4f1b9](https://codegenius.org/uploads/slide/image/847/0aac1e1a-0698-448f-8ff0-81b454f4f1b9.jpeg)
![A7fb2f2c 53a0 47a8 99cc bdb129f51522](https://codegenius.org/uploads/slide/image/848/a7fb2f2c-53a0-47a8-99cc-bdb129f51522.jpeg)
![181bc0bc ffdb 47b7 9d03 a8c912abf488](https://codegenius.org/uploads/slide/image/849/181bc0bc-ffdb-47b7-9d03-a8c912abf488.jpeg)
![98a44428 941d 4e38 bc1f 561c59f22a98](https://codegenius.org/uploads/slide/image/850/98a44428-941d-4e38-bc1f-561c59f22a98.jpeg)
![Eb34faa3 eb61 4bf5 bf3b a78ae241955f](https://codegenius.org/uploads/slide/image/851/eb34faa3-eb61-4bf5-bf3b-a78ae241955f.jpeg)
![23cba504 270c 4f7c ac36 bb1e7516e54b](https://codegenius.org/uploads/slide/image/852/23cba504-270c-4f7c-ac36-bb1e7516e54b.jpeg)
![05e3ad6b bd70 4799 86aa 22751798a6cd](https://codegenius.org/uploads/slide/image/853/05e3ad6b-bd70-4799-86aa-22751798a6cd.jpeg)
![F26a0d6c 6fc2 4a10 a81f 2095278daea0](https://codegenius.org/uploads/slide/image/854/f26a0d6c-6fc2-4a10-a81f-2095278daea0.jpeg)
![34bcbac0 47b3 4eff 9b60 eaf53a6b9e25](https://codegenius.org/uploads/slide/image/855/34bcbac0-47b3-4eff-9b60-eaf53a6b9e25.jpeg)
![B2cbf05b 1561 45b4 8791 8d5fc2a4cd1f](https://codegenius.org/uploads/slide/image/856/b2cbf05b-1561-45b4-8791-8d5fc2a4cd1f.jpeg)
![6ab089a4 a833 4a3f bf1f 17aee2ec02fb](https://codegenius.org/uploads/slide/image/857/6ab089a4-a833-4a3f-bf1f-17aee2ec02fb.jpeg)
HPが0になったら残機数のアイコンを1つ減らす
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayerHealth : MonoBehaviour
{
public GameObject effectPrefab;
public AudioClip damageSound;
public AudioClip destroySound;
public int playerHP;
private Slider playerHPSlider;
// ★(追加)
// 配列の定義(「複数のデータ」を入れることのできる「仕切り」付きの箱を作る)
public GameObject[] playerIcons;
// ★(追加)
// プレーヤーが破壊された回数のデータを入れる箱
public int destroyCount = 0;
private void Start()
{
playerHPSlider = GameObject.Find("PlayerHPSlider").GetComponent<Slider>();
playerHPSlider.maxValue = playerHP;
playerHPSlider.value = playerHP;
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("EnemyMissile"))
{
playerHP -= 1;
AudioSource.PlayClipAtPoint(damageSound, Camera.main.transform.position);
playerHPSlider.value = playerHP;
Destroy(other.gameObject);
if (playerHP == 0)
{
// ★(追加)
// HPが0になったら破壊された回数を1つ増加させる。
destroyCount += 1;
// ★(追加)
// 命令ブロック(メソッド)を呼び出す。
UpdatePlayerIcons();
GameObject effect = Instantiate(effectPrefab, transform.position, Quaternion.identity);
Destroy(effect, 1.0f);
AudioSource.PlayClipAtPoint(destroySound, Camera.main.transform.position);
this.gameObject.SetActive(false);
}
}
}
// ★(追加)
// プレーヤーの残機数を表示する命令ブロック(メソッド)
void UpdatePlayerIcons()
{
// for文(繰り返し文)・・・まずは基本形を覚えましょう!
for (int i = 0; i < playerIcons.Length; i++)
{
if (destroyCount <= i)
{
playerIcons[i].SetActive(true);
}
else
{
playerIcons[i].SetActive(false);
}
}
}
}
![6229c956 f319 4a68 ab80 b0fa39326686](https://codegenius.org/uploads/slide/image/858/6229c956-f319-4a68-ab80-b0fa39326686.jpeg)
![F964b854 3a5f 4116 84dc 6ef4ac809b81](https://codegenius.org/uploads/slide/image/859/f964b854-3a5f-4116-84dc-6ef4ac809b81.jpeg)
![Fd81abed 6653 47fd a6cd 3aec7bbb05fa](https://codegenius.org/uploads/slide/image/860/fd81abed-6653-47fd-a6cd-3aec7bbb05fa.jpeg)
![40e4c1d0 5b29 437c a5bd cb9376f551b6](https://codegenius.org/uploads/slide/image/861/40e4c1d0-5b29-437c-a5bd-cb9376f551b6.jpeg)
プレーヤーのステータス③(残機数を画面に表示する)