public override void OnInspectorGUI()
        {
            AppearanceProbability appearanceProbability = ((AppearanceProbability)target);

            DistanceValueList occurProbabilities = appearanceProbability.occurProbabilities;

            GUILayout.Label("Occur Probabilities", "BoldLabel");
            if (DistanceValueListInspector.ShowLoopToggle(ref occurProbabilities, DistanceValueType.Probability))
            {
                appearanceProbability.occurProbabilities = occurProbabilities;
                EditorUtility.SetDirty(target);
            }
            DistanceValueListInspector.ShowDistanceValues(ref occurProbabilities, DistanceValueType.Probability);

            DistanceValueList noOccurProbabilities = appearanceProbability.noOccurProbabilities;

            GUILayout.Label("No Occur Probabilities", "BoldLabel");
            if (DistanceValueListInspector.ShowLoopToggle(ref noOccurProbabilities, DistanceValueType.Probability))
            {
                appearanceProbability.noOccurProbabilities = noOccurProbabilities;
                EditorUtility.SetDirty(target);
            }
            DistanceValueListInspector.ShowDistanceValues(ref noOccurProbabilities, DistanceValueType.Probability);

            if (DistanceValueListInspector.ShowAddNewValue(ref occurProbabilities, ref noOccurProbabilities))
            {
                appearanceProbability.occurProbabilities   = occurProbabilities;
                appearanceProbability.noOccurProbabilities = noOccurProbabilities;
                EditorUtility.SetDirty(target);
            }
        }
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            SectionSelection sectionSelection = (SectionSelection)target;

            if (sectionSelection.sectionSelectionType == SectionSelectionType.None)
            {
                return;
            }

            bool probabilityType = false;

            if (sectionSelection.sectionSelectionType == SectionSelectionType.ProbabilityRandom ||
                sectionSelection.sectionSelectionType == SectionSelectionType.ProbabilityLoop)
            {
                GUILayout.Label("Active Sections", "BoldLabel");
                int start = EditorGUILayout.IntField("Start Section", sectionSelection.startSection);
                if (start != sectionSelection.startSection)
                {
                    sectionSelection.startSection = start;
                }
                int end = EditorGUILayout.IntField("End Section", sectionSelection.endSection);
                if (end != sectionSelection.endSection)
                {
                    sectionSelection.endSection = end;
                }
                probabilityType = true;
            }

            GUILayout.Label(string.Format("Section Change {0}", probabilityType ? "Probability" : ""), "BoldLabel");
            DistanceValueList sectionList = sectionSelection.sectionList;

            if (DistanceValueListInspector.ShowLoopToggle(ref sectionList, probabilityType ? DistanceValueType.Probability : DistanceValueType.Section))
            {
                sectionSelection.sectionList = sectionList;
                EditorUtility.SetDirty(target);
            }
            DistanceValueListInspector.ShowDistanceValues(ref sectionList, probabilityType ? DistanceValueType.Probability : DistanceValueType.Section);

            if (DistanceValueListInspector.ShowAddNewValue(ref sectionList, probabilityType ? DistanceValueType.Probability : DistanceValueType.Section))
            {
                sectionSelection.sectionList = sectionList;
                EditorUtility.SetDirty(target);
            }
        }
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            InfiniteObjectGenerator infiniteObjectGenerator = (InfiniteObjectGenerator)target;

            GUILayout.Label("No Collidable Probabilities", "BoldLabel");
            DistanceValueList distanceProbabilityList = infiniteObjectGenerator.noCollidableProbability;

            if (DistanceValueListInspector.ShowLoopToggle(ref distanceProbabilityList, DistanceValueType.Probability))
            {
                infiniteObjectGenerator.noCollidableProbability = distanceProbabilityList;
                EditorUtility.SetDirty(target);
            }
            DistanceValueListInspector.ShowDistanceValues(ref distanceProbabilityList, DistanceValueType.Probability);

            if (DistanceValueListInspector.ShowAddNewValue(ref distanceProbabilityList, DistanceValueType.Probability))
            {
                infiniteObjectGenerator.noCollidableProbability = distanceProbabilityList;
                EditorUtility.SetDirty(target);
            }
        }