複数ステージ⑤(ステージクリアー)
ステージクリアー
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
// ★追加(ステージクリアー)
using UnityEngine.SceneManagement;
public class EnemyHealth : MonoBehaviour
{
public GameObject effectPrefab;
public AudioClip destroySound;
public int enemyHP;
private Slider slider;
public int scoreValue;
private ScoreManager sm;
public GameObject[] itemPrefab;
// ★追加(ステージクリアー)
public int nextSceneNumber;
public AudioClip clearSound;
void Start()
{
slider = GameObject.Find("EnemyHPSlider").GetComponent<Slider>();
slider.maxValue = enemyHP;
slider.value = enemyHP;
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)
{
// ★変更(ステージクリアー)
// ↓下記の1行を「//」で「コメントアウト」にする(重要ポイント)
// Destroy (transform.root.gameObject);
// ★追加(ステージクリアー)
// 親オブジェクトを非表示にする
transform.root.gameObject.SetActive(false);
AudioSource.PlayClipAtPoint(destroySound, transform.position);
sm.AddScore(scoreValue);
GameObject dropItem = itemPrefab[Random.Range(0, itemPrefab.Length)];
Instantiate(dropItem, transform.position, Quaternion.identity);
// ★追加(ステージクリアー)
// (条件)親オブジェクトに「Boss」というTagがついていたならば(ポイント)
if (this.gameObject.transform.root.CompareTag("Boss"))
{
// クリアー音を鳴らす
AudioSource.PlayClipAtPoint(clearSound, Camera.main.transform.position);
// 1秒後にシーン遷移のメソッドを実行する。
Invoke("GoNextStage", 1);
}
}
}
}
// ★追加(ステージクリアー)
// シーン遷移のメソッド
void GoNextStage()
{
SceneManager.LoadScene(nextSceneNumber);
}
}
Danmaku Ⅱ(基礎2/全24回)
他のコースを見るステージクリアー
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
// ★追加(ステージクリアー)
using UnityEngine.SceneManagement;
public class EnemyHealth : MonoBehaviour
{
public GameObject effectPrefab;
public AudioClip destroySound;
public int enemyHP;
private Slider slider;
public int scoreValue;
private ScoreManager sm;
public GameObject[] itemPrefab;
// ★追加(ステージクリアー)
public int nextSceneNumber;
public AudioClip clearSound;
void Start()
{
slider = GameObject.Find("EnemyHPSlider").GetComponent<Slider>();
slider.maxValue = enemyHP;
slider.value = enemyHP;
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)
{
// ★変更(ステージクリアー)
// ↓下記の1行を「//」で「コメントアウト」にする(重要ポイント)
// Destroy (transform.root.gameObject);
// ★追加(ステージクリアー)
// 親オブジェクトを非表示にする
transform.root.gameObject.SetActive(false);
AudioSource.PlayClipAtPoint(destroySound, transform.position);
sm.AddScore(scoreValue);
GameObject dropItem = itemPrefab[Random.Range(0, itemPrefab.Length)];
Instantiate(dropItem, transform.position, Quaternion.identity);
// ★追加(ステージクリアー)
// (条件)親オブジェクトに「Boss」というTagがついていたならば(ポイント)
if (this.gameObject.transform.root.CompareTag("Boss"))
{
// クリアー音を鳴らす
AudioSource.PlayClipAtPoint(clearSound, Camera.main.transform.position);
// 1秒後にシーン遷移のメソッドを実行する。
Invoke("GoNextStage", 1);
}
}
}
}
// ★追加(ステージクリアー)
// シーン遷移のメソッド
void GoNextStage()
{
SceneManager.LoadScene(nextSceneNumber);
}
}
複数ステージ⑤(ステージクリアー)