예제 #1
0
    void DestroySelf()
    {
        Enemy.GenerateSelf(transform.position);


        gameObject.SetActive(false);
        bulletPool.Push(gameObject);
        BulletShadow.DestroyShadow(shadow);
    }
예제 #2
0
    /// <summary>
    /// 第三阶段:每隔一段时间掉落子弹
    /// </summary>
    /// <returns></returns>
    IEnumerator StartDropBullet()
    {
        Debug.Log("开启携程");
        Debug.Log(playerBall);
        while (true)
        {
            if ((playerBall.transform.position - transform.position).sqrMagnitude <= sqrShadowRange)
            {
                Debug.Log("掉子弹");
                // Debug.LogFormat("主角距离{0},boss范围{1}", (playerBall.transform.position - transform.position).sqrMagnitude,sqrShadowRange);
                Vector3 pos = new Vector3(Random.Range(-1f, 1f), 0, Random.Range(-1f, 1f)) * dropRange + playerBall.transform.position;
                pos += new Vector3(0, 10, 0);
                GameObject shadow = BulletShadow.GenerateShadow(new Vector3(pos.x, 0.15f, pos.z));
                yield return(new WaitForSeconds(preTime));

                Bullet.GenerateBullet(pos, shadow);

                yield return(new WaitForSeconds(dropGap));
            }
            yield return(0);
        }
    }
예제 #3
0
    private void SpawnBulletShadow(Vector3 start, Vector3 end, Vector3 endScale)
    {
        BulletShadow newShadow = Instantiate(BulletShadowPrefab, start, Quaternion.identity);

        newShadow.SetShadowInfo(start, end, endScale / 2, _isSmallTarget);
    }