AudioPlayer.SubContainer.ContainerTypes GetParentContainerType(AudioPlayer.SubContainer source, AudioPlayer.Container container) { AudioPlayer.SubContainer.ContainerTypes containerType = AudioPlayer.SubContainer.ContainerTypes.AudioSource; if (source.parentLink != 0) { containerType = container.GetSourceWithID(source.parentLink).sourceType; } else if (container.containerType == AudioPlayer.Container.ContainerTypes.MixContainer) { containerType = AudioPlayer.SubContainer.ContainerTypes.MixContainer; } else if (container.containerType == AudioPlayer.Container.ContainerTypes.RandomContainer) { containerType = AudioPlayer.SubContainer.ContainerTypes.RandomContainer; } else if (container.containerType == AudioPlayer.Container.ContainerTypes.SequenceContainer) { containerType = AudioPlayer.SubContainer.ContainerTypes.SequenceContainer; } return(containerType); }
void ShowChildrenSources(AudioPlayer.SubContainer source, AudioPlayer.Container container, SerializedProperty containerProperty) { EditorGUILayout.BeginHorizontal(); source.sourcesShowing = EditorGUILayout.Foldout(source.sourcesShowing, "Sources (" + source.childrenLink.Count + ")"); EditorGUI.BeginDisabledGroup(Application.isPlaying); if (ShowAddElementButton(containerProperty.FindPropertyRelative("subContainers"))) { container.subContainers[container.subContainers.Count - 1] = new AudioPlayer.SubContainer(); if (container.subContainers.Count > 1) { container.subContainers[container.subContainers.Count - 1].Initialize(container, source.id, container.subContainers[container.subContainers.Count - 2]); } else { container.subContainers[container.subContainers.Count - 1].Initialize(container, source.id); } } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndHorizontal(); if (source.sourcesShowing) { EditorGUI.indentLevel += 1; if (source.childrenLink.Count != 0) { for (int i = 0; i < source.childrenLink.Count; i++) { AudioPlayer.SubContainer childSource = container.GetSourceWithID(source.childrenLink[i]); int index = container.subContainers.IndexOf(childSource); EditorGUILayout.BeginHorizontal(); childSource.showing = EditorGUILayout.Foldout(childSource.showing, childSource.name); EditorGUI.BeginDisabledGroup(Application.isPlaying); if (ShowDeleteElementButton(containerProperty.FindPropertyRelative("subContainers"), index)) { container.GetSourceWithID(source.id).childrenLink.Remove(childSource.id); container.RemoveEmptyReferences(); break; } EditorGUILayout.EndHorizontal(); EditorGUI.EndDisabledGroup(); if (childSource.sourceType == AudioPlayer.SubContainer.ContainerTypes.AudioSource) { ShowAudioSource(childSource, container, containerProperty); } else if (childSource.sourceType == AudioPlayer.SubContainer.ContainerTypes.Sampler) { ShowSampler(childSource, container, containerProperty); } else if (childSource.sourceType == AudioPlayer.SubContainer.ContainerTypes.MixContainer) { ShowMixContainer(childSource, container, containerProperty); } else if (childSource.sourceType == AudioPlayer.SubContainer.ContainerTypes.RandomContainer) { ShowRandomContainer(childSource, container, containerProperty); } else if (childSource.sourceType == AudioPlayer.SubContainer.ContainerTypes.SequenceContainer) { ShowSequenceContainer(childSource, container, containerProperty); } } } EditorGUI.indentLevel -= 1; } ShowSeparator(false); }