void DestroySelf() { Enemy.GenerateSelf(transform.position); gameObject.SetActive(false); bulletPool.Push(gameObject); BulletShadow.DestroyShadow(shadow); }
/// <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); } }
private void SpawnBulletShadow(Vector3 start, Vector3 end, Vector3 endScale) { BulletShadow newShadow = Instantiate(BulletShadowPrefab, start, Quaternion.identity); newShadow.SetShadowInfo(start, end, endScale / 2, _isSmallTarget); }