protected override void Start() { base.Start(); bulletList = new List <GameObject>(); for (int i = 0; i < BULLET_NUMBER; i++) { GameObject currentObject = Instantiate(eyeBullet.gameObject, transform.position, Quaternion.identity); bulletList.Add(currentObject); bulletList[i].SetActive(false); } rainBulletList = new List <DestinationBullet>(); for (int i = 0; i < RAIN_BULLET_NUMBER; i++) { DestinationBullet currentObject = Instantiate(eyeBullet, transform.position, Quaternion.Euler(0, 0, 90.0f)); currentObject.gameObject.SetActive(false); currentObject.goToPlayer(false, Vector2.down); currentObject.transform.rotation = Quaternion.Euler(0, 0, 90.0f); rainBulletList.Add(currentObject); } attackTimer = Random.Range(standingIntervalMin, standingIntervalMax); rainTimer = Random.Range(timeBtwRain.x, timeBtwRain.y); StartCoroutine(startingFight()); }
private IEnumerator rain() { int chooseDirection = Random.Range(0, 2); Debug.Log(chooseDirection); Vector2 startPosition = Vector2.zero; Vector2 endPosition = Vector2.zero; raining = true; if (chooseDirection == 0) { startPosition = minFieldLimit.position; endPosition = maxFieldLimit.position; for (float i = startPosition.x; i <= endPosition.x; i += -Mathf.Sign(startPosition.x) * 2.2f) { DestinationBullet currentObejct = useObject(rainBulletList); currentObejct.transform.position = new Vector2(i, startPosition.y); currentObejct.gameObject.SetActive(true); yield return(new WaitForSeconds(TIME_BTW_RAIN)); } } else { startPosition = maxFieldLimit.position; endPosition = minFieldLimit.position; for (float i = startPosition.x; i >= endPosition.x; i += -Mathf.Sign(startPosition.x) * 2.2f) { DestinationBullet currentObejct = useObject(rainBulletList); currentObejct.transform.position = new Vector2(i, startPosition.y); currentObejct.gameObject.SetActive(true); yield return(new WaitForSeconds(TIME_BTW_RAIN)); } } raining = false; }