/// <summary> /// 人工知能 /// </summary> public override void AI() { if (!isStart) { return; } if (!razerClass.IsActive) { bulletClass.enabled = true; if (rigid.velocity == Vector2.zero) { Initialize(); } } else { bulletClass.Stop(); rigid.velocity = Vector2.zero; currentRV = rigid.velocity; } if (isStan) { foreach (var ai in ai_classes) { ai.Stop(); } } else { rigid.velocity = currentRV; } }
private bool isStart; //行動開始フラグ /// <summary> /// 初期化 /// </summary> public override void Initialize() { //初期加速 rigid = GetComponent <Rigidbody2D>(); rigid.velocity = Vector2.zero; rigid.AddForce(transform.up * speed, ForceMode2D.Impulse); currentRV = rigid.velocity; bulletClass = GetComponent <CircleBulletShooter>(); bulletClass.Stop(); razerClass = GetComponent <RazerShooter>(); }
/// <summary> /// 更新 /// </summary> public override void BossUpdate() { ClearShootPoint(); enemyBulletClass.CreateBullets(); shootPoints = GameObject.FindGameObjectsWithTag("ShootPoint"); point.transform.position = transform.position; if (HP <= 0 || isStan) { followClass.Stop(); dashClass.Stop(); razerClass.Stop(); spawner.Stop(); bulletClass.Stop(); enemyBulletClass.Initialize(); state = State.move; } else { Move(); Attack(); } }
/// <summary> /// 人工知能 /// </summary> private void AI() { if (!smashGage.IsMax) { enemyBulletClass.bulletCount = spawnCount; bulletClass.Stop(); dashClass.Stop(); rotateClass.Stop(); dashCount = 0; bulletCount = bulletTime; rigid.sharedMaterial = p_mat; rigid.drag = 0.0f; } else { rigid.sharedMaterial = null; rigid.drag = 2.0f; if (enemyBulletClass.bulletCount != spawnCountMax) { currentRV = Vector2.zero; rigid.velocity = currentRV; enemyBulletClass.bulletCount = spawnCountMax; } if (dashCount <= 2) { bulletCount = bulletTime; dashClass.enabled = true; currentRV = rigid.velocity; if (dashClass.IsEnd()) { dashClass.Stop(); dashCount++; } } else { bulletClass.enabled = true; rotateClass.enabled = true; bulletCount -= Time.deltaTime; if (bulletCount <= 0.0f) { bulletClass.Stop(); rotateClass.Stop(); dashCount = 0; } } } if (enemys.Length > 0) { enemyBulletClass.Stop(); } else { enemyBulletClass.enabled = true; } if (HP <= 0 || isStan) { enemyBulletClass.Stop(); bulletClass.Stop(); dashClass.Stop(); rotateClass.Stop(); lookClass.Stop(); dashCount = 0; bulletCount = bulletTime; currentRV = Vector2.zero; isStartMove = false; } else { rigid.velocity = currentRV; lookClass.enabled = true; } }