void Start() { if (EnemyBulletBaseObject == null) EnemyBulletBaseObject = CommonUtil.SearchObjectChild("EnemyBulletFactory", this.transform); state = EnemyFactoryState.normal; if (initFlag) { CreateInitObjects(); } }
void Update() { // ポーズ中は敵の生成を行わない if (YkSys.Pose) { if (!YkSys.battleSkip) { switch (state) { case EnemyFactoryState.normal: CreateNormalEnemy(); break; case EnemyFactoryState.boss: CreateBossEnemy(); break; } } // 敵と弾丸が全て無くなったらボスフラグを立てる if (GetEnableEnemyAtouchInAllWall() && !GetEnableEnemyBullet() && nowCreateId >= maxId && state == EnemyFactoryState.normal && readyNormalEnemyObjectDic.Count > 0) { if (Application.loadedLevelName != BattleDebug.BUTTLE_DEBUG_SCENE_NAME) { if (!BossCautionAnim.gameObject.activeSelf) { BossCautionAnim.gameObject.SetActive(true); } else { (CommonSys.GetSystem() as TopWindow).boss = true; (CommonSys.GetSystem() as TopWindow).scenarioState = ScenarioPatternType.BOSS; state = EnemyFactoryState.boss; } } else { (CommonSys.GetSystem() as BattleDebug).boss = true; state = EnemyFactoryState.boss; } } timer += Time.deltaTime; } }
/// <summary> /// ボス作成 /// </summary> private void CreateBossEnemy() { // 現在のステージのボス隊列データを読み込み BossEnemyData.BossEnemyFormation formData = bossFormData[YkSys.nowStage]; GameObject obj = bossObject; if (obj == null) { obj = CommonUtil.PrefabInstance(formData.prefab, WallObjects[formData.trans_id].transform); } if (obj != null) { float x = formData.pos; float y = formData.pos; float scale = formData.scale; obj.transform.localScale = new Vector3(scale, scale, 1); switch ((WallType)formData.trans_id) { case WallType.UP: obj.transform.position = new Vector3(x, WallObjects[formData.trans_id].transform.position.y + 1.5f, 0); break; case WallType.DOWN: obj.transform.position = new Vector3(x, WallObjects[formData.trans_id].transform.position.y, 0); obj.transform.Rotate(0, 0, 180); break; case WallType.RIGHT: obj.transform.position = new Vector3(WallObjects[formData.trans_id].transform.position.x, y, 0); obj.transform.Rotate(0, 0, -90); break; case WallType.LEFT: obj.transform.position = new Vector3(WallObjects[formData.trans_id].transform.position.x, y, 0); obj.transform.Rotate(0, 0, 90); break; } // ここまできたら生成フラグをなくす state = EnemyFactoryState.none; // ボスを生成 obj.GetComponent<BossEnemy>().SetData(formData, EnemyBulletBaseObject, WallObjects, this); obj.SetActive(true); BossCautionAnim.gameObject.SetActive(false); } }