void FixedUpdate() { // resend to teh factory if the position goes beyonf boundary if ((m_directionMove > 0 && transform.position.x > 3.6f) || (m_directionMove < 0 && transform.position.x < -3.6f))// reached borders { gameObject.SetActive(false); SpaceInvaderAbstractFactory spaceInvaderFactory = SpaceInvaderFactoryProducer.GetFactory("BossFactory"); // accessomg boss factoy spaceInvaderFactory.RecycleBoss(this); m_invaderManger.RemoveBoss(); } }
public void DestroyBoss(Boss boss) { SpaceInvaderAbstractFactory spaceInvaderFactory = SpaceInvaderFactoryProducer.GetFactory("EffectsFactory"); Effects bossExplodeEffect = spaceInvaderFactory.GetEffects(EffectsType.BossExplode); bossExplodeEffect.transform.position = boss.transform.position; bossExplodeEffect.gameObject.SetActive(true); bossExplodeEffect.DestroyAfterSomeTime(.15f); spaceInvaderFactory = SpaceInvaderFactoryProducer.GetFactory("BossFactory"); // accessomg boss factoy spaceInvaderFactory.RecycleBoss(boss); boss.gameObject.SetActive(false); m_audioSource.PlayOneShot(m_invaderExlodeClip); m_bossInvader = null; // score // for now, if the inviders move right it is 100, 50 left move not really a mystery :( int bossKillScore = m_invaderHorMovDirection > 0 ? 100 : 50; m_gameScoreSO.Value = m_gameScoreSO.Value + bossKillScore; }