Beispiel #1
0
        public ParticleEffectInstanceManager(TextFxAnimationManager animation_manager, LetterSetup letter_setup_ref, ParticleEffectSetup effect_setup, AnimationProgressionVariables progression_vars, AnimatePerOptions animate_per, ParticleSystem particle_system = null)
#endif
        {
#if !UNITY_5_4_OR_NEWER
            m_particle_emitter = particle_emitter;
#endif
            m_particle_system    = particle_system;
            m_letter_setup_ref   = letter_setup_ref;
            m_follow_mesh        = effect_setup.m_follow_mesh;
            m_duration           = effect_setup.m_duration.GetValue(progression_vars, animate_per);
            m_delay              = effect_setup.m_delay.GetValue(progression_vars, animate_per);
            m_position_offset    = effect_setup.m_position_offset.GetValue(null, progression_vars, animate_per);
            m_rotation_offset    = Quaternion.Euler(effect_setup.m_rotation_offset.GetValue(null, progression_vars, animate_per));
            m_rotate_with_letter = effect_setup.m_rotate_relative_to_letter;
            m_animation_manager  = animation_manager;
            m_active             = false;

#if !UNITY_5_4_OR_NEWER
            if (m_particle_emitter != null)
            {
                m_transform = m_particle_emitter.transform;

                m_particle_emitter.emit    = true;
                m_particle_emitter.enabled = false;

                // Set the layer of the effect if an override is specified
                if (animation_manager.AnimationInterface.LayerOverride >= 0)
                {
                    m_particle_emitter.gameObject.layer = animation_manager.AnimationInterface.LayerOverride;
                }
            }
            else
#endif
            if (m_particle_system != null)
            {
                m_transform = m_particle_system.transform;

#if UNITY_5_5_OR_NEWER
                ParticleSystem.MainModule mainMod = m_particle_system.main;
                mainMod.playOnAwake = false;
#else
                m_particle_system.playOnAwake = false;
#endif
                if (m_delay <= 0)
                {
                    m_particle_system.Play();
                }
        #if !UNITY_3_5 && UNITY_EDITOR
                p_system_timer = 0;
        #endif

                // Set the layer of the effect if an override is specified
                if (animation_manager.AnimationInterface.LayerOverride >= 0)
                {
                    m_particle_system.gameObject.layer = animation_manager.AnimationInterface.LayerOverride;
                }
            }
        }
Beispiel #2
0
 public ParticleEffectInstanceManager(TextFxAnimationManager animation_manager, LetterSetup letter_setup_ref, ParticleEffectSetup effect_setup, AnimationProgressionVariables progression_vars, AnimatePerOptions animate_per, ParticleEmitter particle_emitter = null, ParticleSystem particle_system = null)