public void ImportData(Boomlagoon.JSON.JSONObject json_data, string assetNameSuffix = "", float timing_scale = -1) { m_action_type = (ACTION_TYPE) (int) json_data["m_action_type"].Number; m_ease_type = (EasingEquation) (int) json_data["m_ease_type"].Number; m_force_same_start_time = json_data["m_force_same_start_time"].Boolean; m_letter_anchor_start = (int) json_data["m_letter_anchor_start"].Number; m_letter_anchor_end = (int) json_data["m_letter_anchor_end"].Number; m_letter_anchor_2_way = json_data["m_letter_anchor_2_way"].Boolean; m_offset_from_last = json_data["m_offset_from_last"].Boolean; m_position_axis_ease_data.ImportData(json_data["m_position_axis_ease_data"].Obj); m_rotation_axis_ease_data.ImportData(json_data["m_rotation_axis_ease_data"].Obj); m_scale_axis_ease_data.ImportData(json_data["m_scale_axis_ease_data"].Obj); m_colour_transition_active = json_data.ContainsKey("m_colour_transition_active") ? json_data ["m_colour_transition_active"].Boolean : true; m_position_transition_active = json_data.ContainsKey("m_position_transition_active") ? json_data ["m_position_transition_active"].Boolean : true; m_local_rotation_transition_active = json_data.ContainsKey("m_local_rotation_transition_active") ? json_data ["m_local_rotation_transition_active"].Boolean : true; m_local_scale_transition_active = json_data.ContainsKey("m_local_scale_transition_active") ? json_data ["m_local_scale_transition_active"].Boolean : true; m_global_rotation_transition_active = json_data.ContainsKey("m_global_rotation_transition_active") ? json_data ["m_global_rotation_transition_active"].Boolean : true; m_global_scale_transition_active = json_data.ContainsKey("m_global_scale_transition_active") ? json_data ["m_global_scale_transition_active"].Boolean : true; if(json_data.ContainsKey("m_start_colour")) m_start_colour.ImportData(json_data["m_start_colour"].Obj); if(json_data.ContainsKey("m_end_colour")) m_end_colour.ImportData(json_data["m_end_colour"].Obj); if(json_data.ContainsKey("m_start_vertex_colour")) m_start_colour.ImportData(json_data["m_start_vertex_colour"].Obj); if(json_data.ContainsKey("m_end_vertex_colour")) m_start_colour.ImportData(json_data["m_end_vertex_colour"].Obj); if(json_data.ContainsKey("m_use_gradient_start")) // Legacy setting. Need to check for it for backwards compatibility m_start_colour.UseColourGradients = json_data["m_use_gradient_start"].Boolean; if(json_data.ContainsKey("m_use_gradient_end")) // Legacy setting. Need to check for it for backwards compatibility m_end_colour.UseColourGradients = json_data["m_use_gradient_end"].Boolean; m_start_pos.ImportData(json_data["m_start_pos"].Obj); m_end_pos.ImportData(json_data["m_end_pos"].Obj); m_start_euler_rotation.ImportData(json_data["m_start_euler_rotation"].Obj); m_end_euler_rotation.ImportData(json_data["m_end_euler_rotation"].Obj); m_start_scale.ImportData(json_data["m_start_scale"].Obj); m_end_scale.ImportData(json_data["m_end_scale"].Obj); m_global_start_euler_rotation.ImportData(json_data["m_global_start_euler_rotation"].Obj); m_global_end_euler_rotation.ImportData(json_data["m_global_end_euler_rotation"].Obj); m_global_start_scale.ImportData(json_data["m_global_start_scale"].Obj); m_global_end_scale.ImportData(json_data["m_global_end_scale"].Obj); m_duration_progression.ImportData(json_data["m_duration_progression"].Obj); m_delay_progression.ImportData(json_data["m_delay_progression"].Obj); if(timing_scale != -1) { // Scale delay easing by the provided timing scale if(m_delay_progression.Progression != (int) ValueProgression.Constant) { float from = m_delay_progression.ValueFrom; float to = m_delay_progression.ValueTo; float then = m_delay_progression.ValueThen; if(m_delay_progression.Progression == (int) ValueProgression.Eased) { if(m_delay_progression.UsingThirdValue) m_delay_progression.SetEased( from * timing_scale, to * timing_scale, then * timing_scale); else m_delay_progression.SetEased( from * timing_scale, to * timing_scale); } else if(m_delay_progression.Progression == (int) ValueProgression.EasedCustom) { m_delay_progression.SetEasedCustom( from * timing_scale, to * timing_scale); } else if(m_delay_progression.Progression == (int) ValueProgression.Random) { m_delay_progression.SetRandom( from * timing_scale, to * timing_scale, m_delay_progression.UniqueRandomRaw); } } } m_audio_effects = new List<AudioEffectSetup>(); AudioEffectSetup audio_effect; foreach(Boomlagoon.JSON.JSONValue audio_data in json_data["AUDIO_EFFECTS_DATA"].Array) { audio_effect = new AudioEffectSetup(); audio_effect.ImportData(audio_data.Obj); m_audio_effects.Add(audio_effect); } m_particle_effects = new List<ParticleEffectSetup>(); ParticleEffectSetup particle_effect; foreach(Boomlagoon.JSON.JSONValue particle_data in json_data["PARTICLE_EFFECTS_DATA"].Array) { particle_effect = new ParticleEffectSetup(); particle_effect.ImportData(particle_data.Obj, assetNameSuffix); m_particle_effects.Add(particle_effect); } }
public AudioEffectSetup AddAudioEffectSetup() { if(m_audio_effects == null) m_audio_effects = new List<AudioEffectSetup>(); AudioEffectSetup new_audio_effect = new AudioEffectSetup(); m_audio_effects.Add(new_audio_effect); return new_audio_effect; }
public void AddAudioEffectSetup(AudioEffectSetup audio_setup) { if(m_audio_effects == null) m_audio_effects = new List<AudioEffectSetup>(); m_audio_effects.Add(audio_setup); }
public void PlayAudioClip(AudioEffectSetup effect_setup, AnimationProgressionVariables progression_vars, AnimatePerOptions animate_per) { bool sound_played = false; AudioSource source = null; if(m_audio_sources != null) { foreach(AudioSource a_source in m_audio_sources) { if(!a_source.isPlaying) { // audio source free to play a sound source= a_source; sound_played = true; break; } } if(!sound_played) { source = AddNewAudioChild(); } } else { source = AddNewAudioChild(); } PlayClip( source, effect_setup.m_audio_clip, effect_setup.m_delay.GetValue(progression_vars, animate_per), effect_setup.m_offset_time.GetValue(progression_vars, animate_per), effect_setup.m_volume.GetValue(progression_vars, animate_per), effect_setup.m_pitch.GetValue(progression_vars, animate_per)); }