public SectionTransitionParam(int targetIndex, int currentIndex, MusicUnity music) { SectionIndex = targetIndex; SectionTransitionOverride overrideParam = music.SectionTransitionOverrides.Find( (SectionTransitionOverride ov) => { return((ov.FromSectionIndex == currentIndex || ov.FromSectionIndex == -1) && (ov.ToSectionIndex == targetIndex || ov.ToSectionIndex == -1)); }); if (overrideParam != null) { SyncType = overrideParam.SyncType; SyncFactor = overrideParam.SyncFactor; Transition = new MusicSection.TransitionParams(overrideParam.Transition); } else { SyncType = music.Sections[currentIndex].SyncType; SyncFactor = music.Sections[currentIndex].SyncFactor; Transition = new MusicSection.TransitionParams(music.Sections[targetIndex].Transition); } if (SyncType == Music.SyncType.ExitPoint) { Transition.UseFadeOut = false; } }
public SectionTransitionParam(int index, MusicUnity music, Music.SyncType syncType, int syncFactor = 1) { SectionIndex = index; SyncType = syncType; SyncFactor = syncFactor; Transition = new MusicSection.TransitionParams(music.Sections[index].Transition); if (syncType == Music.SyncType.ExitPoint) { Transition.UseFadeOut = false; } }
private void Injection(MusicUnity musicUnity, ITransitionParameterProvidable parameterProvidable) { this.musicUnity = musicUnity; this.parameterProvidable = parameterProvidable; }
private void Injection(Amplitude amplitude, INativeProvidable nativeProvider, MusicUnity music) { this.nativeProvider = nativeProvider; this.amplitude = amplitude; this.music = music; }
public override void OnInspectorGUI() { if (sectionListProperty_ == null) { InitializeProperties(); } serializedObject.Update(); // params EditorGUILayout.PropertyField(volumeProperty_); EditorGUILayout.PropertyField(playOnStartProperty_); EditorGUILayout.PropertyField(mixerGroupProperty_); // 複数選択では以降無視 if (serializedObject.isEditingMultipleObjects) { EditorGUILayout.LabelField("Cannot draw section list while multi editing", EditorStyles.boldLabel); serializedObject.ApplyModifiedProperties(); return; } // musicを取得 MusicUnity music = serializedObject.targetObject as MusicUnity; sectionListDisplayOptions_ = new string[music.Sections.Length]; for (int i = 0; i < sectionListProperty_.arraySize; ++i) { sectionListDisplayOptions_[i] = music.Sections[i].Name; } modeListDisplayOptions_ = new string[music.Modes.Length]; for (int i = 0; i < modeListProperty_.arraySize; ++i) { modeListDisplayOptions_[i] = music.Modes[i].Name; } // num tracks EditorGUILayout.PropertyField(numTracksProperty_); // sections sectionListProperty_.isExpanded = EditorGUILayout.Foldout(sectionListProperty_.isExpanded, "Sections"); if (sectionListProperty_.isExpanded) { EditorGUI.indentLevel++; for (int i = 0; i < sectionListProperty_.arraySize; ++i) { DrawSection(sectionListProperty_.GetArrayElementAtIndex(i), (i < music.Sections.Length ? music.Sections[i] : null)); } DrawContainerButtons(sectionListProperty_); EditorGUI.indentLevel--; } // modes modeListProperty_.isExpanded = EditorGUILayout.Foldout(modeListProperty_.isExpanded, "Modes"); if (modeListProperty_.isExpanded) { EditorGUI.indentLevel++; for (int i = 0; i < modeListProperty_.arraySize; ++i) { DrawMode(modeListProperty_.GetArrayElementAtIndex(i)); } DrawContainerButtons(modeListProperty_); DrawModeTransitionParam(modeTransitionParamProperty_); EditorGUI.indentLevel--; } showOverrides_ = EditorGUILayout.Foldout(showOverrides_, "Overrides"); if (showOverrides_) { EditorGUI.indentLevel++; // section transition overrides sectionTransitionOverridesListProperty_.isExpanded = EditorGUILayout.Foldout(sectionTransitionOverridesListProperty_.isExpanded, "Section Transition Overrides"); if (sectionTransitionOverridesListProperty_.isExpanded) { if (sectionTransitionOverridesListProperty_.arraySize > 0) { sectionListDisplayOptionsWithAny_ = new string[music.Sections.Length + 1]; sectionListValueOptions_ = new int[sectionListDisplayOptionsWithAny_.Length]; sectionListDisplayOptionsWithAny_[0] = "Any"; sectionListValueOptions_[0] = -1; for (int i = 0; i < music.Sections.Length; ++i) { sectionListDisplayOptionsWithAny_[i + 1] = music.Sections[i].Name; sectionListValueOptions_[i + 1] = i; } } EditorGUI.indentLevel++; sectionTransitionOverridesListProperty_.arraySize = EditorGUILayout.IntField("Size", sectionTransitionOverridesListProperty_.arraySize); for (int i = 0; i < sectionTransitionOverridesListProperty_.arraySize; ++i) { DrawSectionTransitionOverrideParam(sectionTransitionOverridesListProperty_.GetArrayElementAtIndex(i)); } EditorGUI.indentLevel--; } // mode transition overrides modeTransitionOverridesListProperty_.isExpanded = EditorGUILayout.Foldout(modeTransitionOverridesListProperty_.isExpanded, "Mode Transition Overrides"); if (modeTransitionOverridesListProperty_.isExpanded) { if (modeTransitionOverridesListProperty_.arraySize > 0) { modeListDisplayOptionsWithAny_ = new string[music.Modes.Length + 1]; modeListValueOptions_ = new int[modeListDisplayOptionsWithAny_.Length]; modeListDisplayOptionsWithAny_[0] = "Any"; modeListValueOptions_[0] = -1; for (int i = 0; i < music.Modes.Length; ++i) { modeListDisplayOptionsWithAny_[i + 1] = music.Modes[i].Name; modeListValueOptions_[i + 1] = i; } } EditorGUI.indentLevel++; modeTransitionOverridesListProperty_.arraySize = EditorGUILayout.IntField("Size", modeTransitionOverridesListProperty_.arraySize); for (int i = 0; i < modeTransitionOverridesListProperty_.arraySize; ++i) { DrawModeTransitionOverrideParam(modeTransitionOverridesListProperty_.GetArrayElementAtIndex(i)); } EditorGUI.indentLevel--; } EditorGUI.indentLevel--; } // options showOptions_ = EditorGUILayout.Foldout(showOptions_, "Options"); if (showOptions_) { EditorGUI.indentLevel++; //showHelpTexts_ = EditorGUILayout.Toggle("Show Help", showHelpTexts_); showUnitPerBarBeat_ = EditorGUILayout.Toggle("Show Meters in UnitPerBeat/Bar", showUnitPerBarBeat_); EditorGUI.indentLevel--; } // player if (UnityEditor.EditorApplication.isPlaying) { GUILayout.BeginHorizontal(); { if (GUILayout.Button("Play")) { if (music.IsPlaying == false) { music.Play(); } } if (GUILayout.Button(music.State == Music.PlayState.Suspended ? "Resume" : "Suspend")) { if (music.State == Music.PlayState.Suspended) { music.Resume(); } else { music.Suspend(); } } if (GUILayout.Button("Stop")) { if (music.IsPlaying || music.State == Music.PlayState.Suspended) { music.Stop(); } } } GUILayout.EndHorizontal(); if (music.State == Music.PlayState.Playing || music.State == Music.PlayState.Suspended) { EditorGUILayout.BeginHorizontal(); int sequenceIndex = EditorGUILayout.Popup("Section", music.SequenceIndex, sectionListDisplayOptions_); if (sequenceIndex != music.SequenceIndex) { music.SetHorizontalSequenceByIndex(sequenceIndex); } if (music.NextSectionIndex >= 0 && music.NextSectionIndex != music.SectionIndex) { EditorGUILayout.LabelField("to " + sectionListDisplayOptions_[music.NextSectionIndex], GUILayout.Width(120)); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); int modeIndex = EditorGUILayout.Popup("Mode", music.ModeIndex, modeListDisplayOptions_); if (modeIndex != music.ModeIndex) { music.SetVerticalMixByIndex(modeIndex); } if (music.NextModeIndex >= 0 && music.NextModeIndex != music.ModeIndex) { EditorGUILayout.LabelField("to " + modeListDisplayOptions_[music.NextModeIndex], GUILayout.Width(120)); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Slider("Seek Bar", music.MusicalTime, music.CurrentSection.EntryPointTiming.IsZero() ? 0 : -1, music.CurrentSection.ExitPointTiming.Bar); EditorUtility.SetDirty(serializedObject.targetObject); } else { previewSectionProperty_.intValue = EditorGUILayout.Popup("Section", previewSectionProperty_.intValue, sectionListDisplayOptions_); previewModeProperty_.intValue = EditorGUILayout.Popup("Mode", previewModeProperty_.intValue, modeListDisplayOptions_); seekBarProperty_.intValue = EditorGUILayout.IntSlider("Seek Bar", seekBarProperty_.intValue, music.Sections[previewSectionProperty_.intValue].EntryPointTiming.IsZero() ? 0 : -1, music.Sections[previewSectionProperty_.intValue].ExitPointTiming.Bar); } } serializedObject.ApplyModifiedProperties(); }