IEnumerator AttackWithAttackRate(Transform characterTransform, RotationDirection attackDirection, string ignoreTag) { for (int i = 0; i < SpawnedObjectsOffset.Count; i++) { Quaternion rotation = attackDirection.rotation; if (isRandom) { rotation *= Quaternion.Euler(0, 0, Random.Range(-randomAngleOffset / 2, randomAngleOffset / 2)); } else { rotation *= Quaternion.Euler(0, 0, SpawnedObjectsOffset[i]); } GameObject spawnedObject = Instantiate(spawnableObject, characterTransform.position + attackDirection.direction, rotation); WeaponSpawnedObject weaponSpawnedObject = spawnedObject.GetComponent <WeaponSpawnedObject>(); if (spawnedObjectAttachToCharacter) { spawnedObject.transform.SetParent(characterTransform); } weaponSpawnedObject.CreateWeaponSpawnedObject(this, ignoreTag); if (isBurst) { yield return(new WaitForSeconds(attackRate)); } } yield return(null); }
public float GetExpectedRange() { WeaponSpawnedObject weaponSpawnedObject = spawnableObject.GetComponent <WeaponSpawnedObject>(); return(spawnedObjectSpeed * spawnedObjectLifeTime); }