示例#1
0
    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);
    }
示例#2
0
    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);
    }