プレーヤーのステータス⑤(ゲームオーバーシーンの作成)
![E1999f8c 2bab 4d48 a50b 045165791ea7](https://codegenius.org/uploads/slide/image/4632/e1999f8c-2bab-4d48-a50b-045165791ea7.jpeg)
![1fc7b023 721f 451e 8512 25cc804280c1](https://codegenius.org/uploads/slide/image/4633/1fc7b023-721f-451e-8512-25cc804280c1.jpeg)
![967083f1 db1c 4a61 9458 440ceec0cdb0](https://codegenius.org/uploads/slide/image/4634/967083f1-db1c-4a61-9458-440ceec0cdb0.jpeg)
![D4b7903f 3461 43df 877a be13901a69f7](https://codegenius.org/uploads/slide/image/4635/d4b7903f-3461-43df-877a-be13901a69f7.jpeg)
![61c8d1c9 36ea 4308 8276 b2eaf6931c75](https://codegenius.org/uploads/slide/image/4636/61c8d1c9-36ea-4308-8276-b2eaf6931c75.jpeg)
![46b9e24d 2b76 4891 9ee6 63e7f2f46ac7](https://codegenius.org/uploads/slide/image/4637/46b9e24d-2b76-4891-9ee6-63e7f2f46ac7.jpeg)
![E7eafd7c cb5b 44c1 94b9 9ff826d8dc7b](https://codegenius.org/uploads/slide/image/4638/e7eafd7c-cb5b-44c1-94b9-9ff826d8dc7b.jpeg)
![4beb0642 f8a6 4fa6 87a4 292e27f0d888](https://codegenius.org/uploads/slide/image/4639/4beb0642-f8a6-4fa6-87a4-292e27f0d888.jpeg)
![5f9d5fa4 5786 4bb9 b75d c8b5833e3845](https://codegenius.org/uploads/slide/image/4640/5f9d5fa4-5786-4bb9-b75d-c8b5833e3845.jpeg)
![2dab51f7 f116 4a0a bbc6 18df850ce67d](https://codegenius.org/uploads/slide/image/4641/2dab51f7-f116-4a0a-bbc6-18df850ce67d.jpeg)
![328b1b53 de1d 4bb1 8911 fc1e402873b6](https://codegenius.org/uploads/slide/image/4642/328b1b53-de1d-4bb1-8911-fc1e402873b6.jpeg)
![2bd328d3 8648 490e 9006 85895ee1070b](https://codegenius.org/uploads/slide/image/4643/2bd328d3-8648-490e-9006-85895ee1070b.jpeg)
リトライとゲームオーバーの切り分け
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
// ★★★(追加)
using UnityEngine.SceneManagement;
public class PlayerHealth : MonoBehaviour
{
public GameObject effectPrefab;
public AudioClip damageSound;
public AudioClip destroySound;
public int playerHP;
public Slider hpSlider;
public GameObject[] playerIcons;
private int destroyCount = 0;
private void Start()
{
hpSlider.maxValue = playerHP;
hpSlider.value = playerHP;
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("EnemyMissile"))
{
playerHP -= 1;
AudioSource.PlayClipAtPoint(damageSound, Camera.main.transform.position);
Destroy(other.gameObject);
hpSlider.value = playerHP;
if (playerHP == 0)
{
GameObject effect = Instantiate(effectPrefab, transform.position, Quaternion.identity);
Destroy(effect, 1.0f);
AudioSource.PlayClipAtPoint(destroySound, Camera.main.transform.position);
this.gameObject.SetActive(false);
destroyCount += 1;
UpdatePlayerIcons();
// ★★★(追加)
// 破壊された回数によって場合分けを行います。
if (destroyCount < 5) // ここの条件は自分のゲームに合わせましょう!
{
// リトライ
Invoke("Retry", 1.0f);
}
else
{
// ゲームオーバー
SceneManager.LoadScene("GameOver");
// destroyCountをリセット
destroyCount = 0;
}
}
}
}
void UpdatePlayerIcons()
{
for (int i = 0; i < playerIcons.Length; i++)
{
if (destroyCount <= i)
{
playerIcons[i].SetActive(true);
}
else
{
playerIcons[i].SetActive(false);
}
}
}
void Retry()
{
this.gameObject.SetActive(true);
playerHP = 3;
hpSlider.value = playerHP;
}
}
![0248cfe4 45f2 444d ac36 87b05ccb91b1](https://codegenius.org/uploads/slide/image/4644/0248cfe4-45f2-444d-ac36-87b05ccb91b1.jpeg)
![5cc877a3 49f6 467f bb2b 4158f7b4dfbc](https://codegenius.org/uploads/slide/image/4645/5cc877a3-49f6-467f-bb2b-4158f7b4dfbc.jpeg)
![B10082f5 5b53 42ab 9610 e6f3608964a1](https://codegenius.org/uploads/slide/image/4646/b10082f5-5b53-42ab-9610-e6f3608964a1.jpeg)
【2019版】Danmaku I(基礎1/全22回)
他のコースを見る![E1999f8c 2bab 4d48 a50b 045165791ea7](https://codegenius.org/uploads/slide/image/4632/e1999f8c-2bab-4d48-a50b-045165791ea7.jpeg)
![1fc7b023 721f 451e 8512 25cc804280c1](https://codegenius.org/uploads/slide/image/4633/1fc7b023-721f-451e-8512-25cc804280c1.jpeg)
![967083f1 db1c 4a61 9458 440ceec0cdb0](https://codegenius.org/uploads/slide/image/4634/967083f1-db1c-4a61-9458-440ceec0cdb0.jpeg)
![D4b7903f 3461 43df 877a be13901a69f7](https://codegenius.org/uploads/slide/image/4635/d4b7903f-3461-43df-877a-be13901a69f7.jpeg)
![61c8d1c9 36ea 4308 8276 b2eaf6931c75](https://codegenius.org/uploads/slide/image/4636/61c8d1c9-36ea-4308-8276-b2eaf6931c75.jpeg)
![46b9e24d 2b76 4891 9ee6 63e7f2f46ac7](https://codegenius.org/uploads/slide/image/4637/46b9e24d-2b76-4891-9ee6-63e7f2f46ac7.jpeg)
![E7eafd7c cb5b 44c1 94b9 9ff826d8dc7b](https://codegenius.org/uploads/slide/image/4638/e7eafd7c-cb5b-44c1-94b9-9ff826d8dc7b.jpeg)
![4beb0642 f8a6 4fa6 87a4 292e27f0d888](https://codegenius.org/uploads/slide/image/4639/4beb0642-f8a6-4fa6-87a4-292e27f0d888.jpeg)
![5f9d5fa4 5786 4bb9 b75d c8b5833e3845](https://codegenius.org/uploads/slide/image/4640/5f9d5fa4-5786-4bb9-b75d-c8b5833e3845.jpeg)
![2dab51f7 f116 4a0a bbc6 18df850ce67d](https://codegenius.org/uploads/slide/image/4641/2dab51f7-f116-4a0a-bbc6-18df850ce67d.jpeg)
![328b1b53 de1d 4bb1 8911 fc1e402873b6](https://codegenius.org/uploads/slide/image/4642/328b1b53-de1d-4bb1-8911-fc1e402873b6.jpeg)
![2bd328d3 8648 490e 9006 85895ee1070b](https://codegenius.org/uploads/slide/image/4643/2bd328d3-8648-490e-9006-85895ee1070b.jpeg)
リトライとゲームオーバーの切り分け
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
// ★★★(追加)
using UnityEngine.SceneManagement;
public class PlayerHealth : MonoBehaviour
{
public GameObject effectPrefab;
public AudioClip damageSound;
public AudioClip destroySound;
public int playerHP;
public Slider hpSlider;
public GameObject[] playerIcons;
private int destroyCount = 0;
private void Start()
{
hpSlider.maxValue = playerHP;
hpSlider.value = playerHP;
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("EnemyMissile"))
{
playerHP -= 1;
AudioSource.PlayClipAtPoint(damageSound, Camera.main.transform.position);
Destroy(other.gameObject);
hpSlider.value = playerHP;
if (playerHP == 0)
{
GameObject effect = Instantiate(effectPrefab, transform.position, Quaternion.identity);
Destroy(effect, 1.0f);
AudioSource.PlayClipAtPoint(destroySound, Camera.main.transform.position);
this.gameObject.SetActive(false);
destroyCount += 1;
UpdatePlayerIcons();
// ★★★(追加)
// 破壊された回数によって場合分けを行います。
if (destroyCount < 5) // ここの条件は自分のゲームに合わせましょう!
{
// リトライ
Invoke("Retry", 1.0f);
}
else
{
// ゲームオーバー
SceneManager.LoadScene("GameOver");
// destroyCountをリセット
destroyCount = 0;
}
}
}
}
void UpdatePlayerIcons()
{
for (int i = 0; i < playerIcons.Length; i++)
{
if (destroyCount <= i)
{
playerIcons[i].SetActive(true);
}
else
{
playerIcons[i].SetActive(false);
}
}
}
void Retry()
{
this.gameObject.SetActive(true);
playerHP = 3;
hpSlider.value = playerHP;
}
}
![0248cfe4 45f2 444d ac36 87b05ccb91b1](https://codegenius.org/uploads/slide/image/4644/0248cfe4-45f2-444d-ac36-87b05ccb91b1.jpeg)
![5cc877a3 49f6 467f bb2b 4158f7b4dfbc](https://codegenius.org/uploads/slide/image/4645/5cc877a3-49f6-467f-bb2b-4158f7b4dfbc.jpeg)
![B10082f5 5b53 42ab 9610 e6f3608964a1](https://codegenius.org/uploads/slide/image/4646/b10082f5-5b53-42ab-9610-e6f3608964a1.jpeg)
プレーヤーのステータス⑤(ゲームオーバーシーンの作成)