/// <summary> /// Enemyの設定 /// </summary> /// <param name="isBoss"></param> // Start is called before the first frame update public void SetUpEnemy(EnemyDataSO.EnemyData enemyData) { //引数で受け取った情報を変数に代入してスクリプト内で利用できる状態にする this.enemyData = enemyData; if (this.enemyData.enemyType != EnemyType.Boss) { //エネミーのx軸(左右)の位置をゲーム画面に収まる範囲でランダムな位置に変更 transform.localPosition = new Vector3(transform.localPosition.x + Random.Range(-630, 630), transform.localPosition.y, 0); } else { //BOssのサイズを大きくする transform.localScale = Vector3.one * 7.0f; //Hpゲージの位置を高い位置にする slider.transform.localPosition = new Vector3(0, 60, 0); } //画像をEnemyDataの画像にする(ここでエネミーごとの画像に変更する) imgEnemy.sprite = this.enemyData.enemySprite; //ゲーム開始時点のHPの値を最大値として代入 maxHP = this.enemyData.hp; enemyHp = maxHP; //HPゲージの表示更新 DisplayHpGauge(); //移動タイプに応じた移動方法を選択して実行 SetMoveByMoveType(); }
/// <summary> /// エネミーの生成 /// </summary> private void GenerateEnemy(EnemyType enemyType = EnemyType.Normal) { //ランダムな値を代入する為の変数を宣言 int randomEnemyNo; //EnemyDataを代入するための変数を宣言 EnemyDataSO.EnemyData enemyData = null; //EnemyTypeに合わせて生成するエネミーの種類を決定し、そのエネミーの種類ごとのリストからランダムなEnemyDataを取得 switch (enemyType) { case EnemyType.Normal: randomEnemyNo = Random.Range(0, normalEnemyDatas.Count); enemyData = normalEnemyDatas[randomEnemyNo]; break; case EnemyType.Boss: randomEnemyNo = Random.Range(0, bossEnemyDatas.Count); enemyData = bossEnemyDatas[randomEnemyNo]; break; } //クローン生成 //エネミーオブジェクトにアタッチされているEnemyControllerスクリプトの情報を取得し変数に代入 //EnemyControllerスクリプトのSetUpEnemyメソッドを実行 GameObject enemySetObj = Instantiate(enemyPrefab, transform, false); EnemyController enemyController = enemySetObj.GetComponent <EnemyController>(); //EnemyControllerスクリプトのSetUpEnemyメソッドを実行する(Startメソッドの代わりになる処理) enemyController.SetUpEnemy(enemyData); //追加設定を行う enemyController.AdditionalSetUpEnemy(this); }
/// <summary> /// エネミーの設定 /// </summary> /// <param name="enemyData"></param> public void SetUpEnemy(EnemyDataSO.EnemyData enemyData) { this.enemyData = enemyData; if (this.enemyData.enemyType != EnemyType.Boss) { //エネミーのX軸の位置を、ゲーム画面に収まる葉にdふぇランダムな位置に変更 transform.localPosition = new Vector3(transform.localPosition.x + Random.Range(-650, 650), transform.localPosition.y, 0); } else { //ボスの場合、サイズを大きくする transform.localScale = Vector3.one * 2.0f; //HPゲージの位置を高い位置にする slider.transform.localPosition = new Vector3(0, 150, 0); } //画像をEnemyDataの画像にする imgEnemy.sprite = this.enemyData.enemySprite; maxHp = this.enemyData.hp; hp = maxHp; DisplayHpGauge(); }
private void GenerateEnemy(EnemyType enemyType = EnemyType.Normal) { //ランダムな値を代入するための変数を宣言 int randomEnemyNo; //EnemyDataを代入するための変数を宣言 EnemyDataSO.EnemyData enemyData = null; //EnemyTypeに合わせて生成するエネミーの種類を決定しそのエネミーの種類毎のリストからランダムなEnemyDataを取得 switch (enemyType) { case EnemyType.Normal: randomEnemyNo = Random.Range(0, normalEnemyDatas.Count); enemyData = normalEnemyDatas[randomEnemyNo]; break; case EnemyType.Boss: randomEnemyNo = Random.Range(0, bossEnemyDatas.Count); enemyData = bossEnemyDatas[randomEnemyNo]; break; } //プレファブからエネミーのクローンを生成する。生成位置はEnemyGeneratorの位置。戻り値の値はEnemyController型になる EnemyController enemyController = Instantiate(enemyObjPrefab, transform, false); //EnemyControllerスクリプトのSetUpEnemyメソッドを実行する(Startメソッドの変わりの処理) enemyController.SetUpEnemy(enemyData); //Boss以外でも追加設定を行う enemyController.AdditionalSetUPEnemy(this, gamemanager.bulletSelectManager.GetBulletData(enemyData.bulletType)); //Listに生成したエネミーの情報を追加 enemiesList.Add(enemyController); }