예제 #1
0
    /// <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;
        }
    }
예제 #2
0
    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>();
    }
예제 #3
0
    /// <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();
        }
    }
예제 #4
0
    /// <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;
        }
    }