private void Split() { for (int i = 0; i < fragmentDirections.Length; i++) { BossSpitProjectile fragment = Instantiate(this.gameObject, transform.position + fragmentDirections[i] * 10.0f + Vector3.up * 10.0f, transform.rotation, null).GetComponent <BossSpitProjectile>(); fragment.isFragment = true; } }
private IEnumerator SpitProjectile() { AudioManager.Instance.PlaySoundVaried("ToadSpit"); // Create projectile GameObject newProjectile = Instantiate(projectilePrefab, projectileSpawnSocket.position, Quaternion.identity, null); BossSpitProjectile proj = newProjectile.GetComponent <BossSpitProjectile>(); proj.spitUpAttack = this; // Find a tile for it to aim for GridTile aimTile = GetRandomFreeTile(); proj.aimedTile = aimTile; ProjectileCreated(aimTile); proj.rigidBody.AddForce(Vector3.up * 2.0f, ForceMode.Impulse); if (bossScript.ateRock) { proj.rockEaten = true; } yield return(new WaitForSeconds(0.5f)); // When projectile is off screen, move it above the tile it will land on proj.rigidBody.velocity = Vector3.zero; proj.transform.position = proj.aimedTile.transform.position + Vector3.up * dropHeight; //List<GameObject> aimIndicators = new List<GameObject>(); //aimIndicators.Add(Instantiate(aimIndicatorPrefab, aimTile.transform.position, Quaternion.identity, null)); //if (bossScript.ateRock) //{ // for (int i = 0; i < 4; i++) // { // aimIndicators.Add(Instantiate(aimIndicatorPrefab, aimTile.transform.position + (fragmentDirections[i] * 10.0f), Quaternion.identity, null)); // } //} //proj.AddAimIndicators(aimIndicators); }