private ParticleVfx GetParticleVfx(VfxMap inMap) { var particle = SystemFacade.Pool.GetConcreteGameView <ParticleVfx>(); var go = SystemFacade.Pool.Spawn(inMap.vfxName); if (particle == null) { //- create new particle particle = new ParticleVfx(this.application, go); SystemFacade.Pool.StoreGameView(particle); } else { //- use old one from the pool particle.SetGameObject(go); } return(particle); }
private AnimationVfx GetAnimationVfx(VfxMap inMap) { var anim = SystemFacade.Pool.GetConcreteGameView <AnimationVfx>(); var go = SystemFacade.Pool.Spawn(inMap.vfxName); if (anim == null) { //- create new animation anim = new AnimationVfx(this.application, inMap.vfxName, LayerNames.Vfx); SystemFacade.Pool.AddItem(anim.gameObject.transform, inMap.vfxName, false, null); SystemFacade.Pool.StoreGameView(anim); } else { //- use old one from the pool anim.SetGameObject(go); anim.UpdateSpriteRendererInstance(); } anim.Animator.SetAnimationData(inMap.animationData); return(anim); }