private IEnumerator HitCorotinue() { WaitForFixedUpdate wait = new WaitForFixedUpdate(); float timer = warningTime; while (timer > 0) { timer -= Time.fixedDeltaTime; yield return(wait); } timer = damageTime; readyToDamage = true; while (timer > 0) { timer -= Time.fixedDeltaTime; yield return(wait); } readyToDamage = false; var obj = ObjectPool.GetObject(bullet, "SkillBullets"); SkillBullet skill = obj.GetComponent <SkillBullet>(); skill.Source = Source; skill.Target = Target; skill.Launch(transform.position, transform.right); ObjectPool.RecycleObject(this.gameObject); }
private void CreateBarrage() { float deltaAngle; if (count > 1) { deltaAngle = angle / (count - 1); } else { deltaAngle = angle; } transform.Rotate(0, 0, -angle / 2); for (int i = 0; i < count; i++) { var bullet = ObjectPool.GetObject(buckshot, "SkillBullets"); SkillBullet skill = bullet.GetComponent <SkillBullet>(); skill.Source = Source; skill.Target = Target; skill.Launch(transform.position, transform.right); transform.Rotate(0, 0, deltaAngle); } }
private IEnumerator ShootCorotinue() { WaitForFixedUpdate wait = new WaitForFixedUpdate(); float timer; for (int i = 0; i < bullets.Length; i++) { transform.position = Source.transform.position; Vector2 direction = (Target.transform.position - transform.position).normalized; transform.right = direction; GameObject prefab = NotionWorld.Worlds.ObjectPool.GetObject(bullets[i], "SkillBullets"); SkillBullet bullet = prefab.GetComponent <SkillBullet>(); bullet.Source = Source; bullet.Target = Target; timer = interval; while (timer > 0) { timer -= Time.fixedDeltaTime; yield return(wait); } bullet.Launch(transform.position, transform.right); } ObjectPool.RecycleObject(this.gameObject); }
public override void Launch(Vector2 position, Vector2 direction) { transform.position = position; for (int i = 0; i < count; i++) { var obj = ObjectPool.GetObject(mortar, "SkillBullets"); SkillBullet skill = obj.GetComponent <SkillBullet>(); skill.Source = Source; skill.Target = Target; Vector2 pos = new Vector2(Random.Range(area.xMin, area.xMax), Random.Range(area.yMin, area.yMax)); skill.Launch(pos, transform.right); } }
private void Skill() { GameObject prefab = NotionWorld.Worlds.ObjectPool.GetObject(skillBullet, "SkillBullets"); SkillBullet bullet = prefab.GetComponent <SkillBullet>(); bullet.Source = Owner.gameObject; bullet.Target = targetGameObject.Value; Vector2 position = animatorModifier.Animator.transform.position; Vector2 direction = ((Vector2)targetGameObject.Value.transform.position - position); direction = direction.normalized; bullet.Launch(position, direction); coldDownTimer = bullet.coldDown; animatorModifier.TakeEffect(); }
private void CreateBarrage() { float deltaAngle = Random.Range(minDeltaAngle, maxDeltaAngle); transform.Rotate(0, 0, -deltaAngle * count / 2); for (int i = 0; i < count; i++) { var bullet = ObjectPool.GetObject(buckshot, "SkillBullets"); SkillBullet skill = bullet.GetComponent <SkillBullet>(); skill.Source = Source; skill.Target = Target; skill.Launch(transform.position, transform.right); transform.Rotate(0, 0, deltaAngle); deltaAngle = Random.Range(minDeltaAngle, maxDeltaAngle); } }