public ParticleSystemContainer PlaceParticleSystem(ProtoParticleSystem particleSystem,
                                                           Transform intendedBoundingBox,
                                                           Action afterAnimationIsFinishedAction = null,
                                                           Transform parent = null)
        {
            if (parent == null)
            {
                parent = particleCamera.transform;
            }

            var loadedPrefab = Resources.Load <ParticleSystem>(particleSystem.PrefabPath);

            if (loadedPrefab == null)
            {
                Debug.LogError("Could not load particles from location: " + particleSystem.PrefabPath + "; using meeple instead");
                loadedPrefab = Resources.Load <ParticleSystem>(DefaultParticleSystemPath);
            }

            var instance = Instantiate(loadedPrefab, parent: parent);

            MoveParticleSystemToUiBoundingBox(instance, intendedBoundingBox);
            instance.transform.localScale *= particleSystem.SizeRatio;
            instance.Play();
            instance.gameObject.layer = 10;//particle layer
            var container = new ParticleSystemContainer {
                Particles = instance,
                GoodUntil = DateTime.Now + TimeSpan.FromSeconds(particleSystem.KillAfterNumSeconds)
            };

            if (afterAnimationIsFinishedAction != null)
            {
                container.AfterAnimationIsFinishedAction = afterAnimationIsFinishedAction;
            }
            SpecialEffectsInProgress.Add(container);

            Debug.Log("Started particle effect: " + particleSystem.PrefabPath);

            return(container);
        }
Exemplo n.º 2
0
 public void OnEnable()
 {
     particleSystemContainer = new ParticleSystemContainer(DefaultParticlePrefab, 10);
 }
Exemplo n.º 3
0
 void Start()
 {
     particleSystemContainer = new ParticleSystemContainer(BrakeParticleSystemPrefab, 2);
     spriteRenderer          = GetComponent <SpriteRenderer>();
 }
Exemplo n.º 4
0
 void Start()
 {
     particleSystemContainer = new ParticleSystemContainer(SparksParticlePrefab, 10);
 }
Exemplo n.º 5
0
 public void OnEnable()
 {
     lastTime = 0;
     particleSystemContainer = new ParticleSystemContainer(BurnParticlePrefab, 10);
 }
        public void BeginSpecialEffect()
        {
            var container = ParticleSystemSpawner.Instance.GenerateSpecialEffectAtCharacter(SpawnAt, ProtoSystem, LocationToHit, Afterward_SetByActionManager);

            Container = container;
        }