コード例 #1
0
        ///////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// DrawObjectsMode
        /// # Draw al gui buttons, checboxes, ... to handle and insert objects in scene
        /// </summary>
        ///////////////////////////////////////////////////////////////////////////////////////////////////////
        void DrawObjectsMode()
        {
            EditorBasicFunctions.DrawEditorBox("Insert objects: Options", Color.white, position);

            if (!configSaver.parameters.hideBasicHelp)
            {
                EditorBasicFunctions.DrawEditorBox(EditorBasicFunctions.GetInsertModeHelpString() + " objects", Color.yellow, position);
            }

            EditorGUILayout.Separator();

            configSaver.parameters.showPrefabConfigOptions = EditorGUILayout.Foldout(configSaver.parameters.showPrefabConfigOptions, new GUIContent("Show prefab configuration options", "Show prefab configuration options"));

            if (!configSaver.parameters.showPrefabConfigOptions)
            {
            }
            else
            {
                EditorBasicFunctions.DrawEditorBox("Configuration", Color.yellow, position);

                EditorGUILayout.Separator();

                attachObjectToCollisionObject = EditorGUILayout.Toggle(new GUIContent("Attach to father", "Attach created object to hit object"), attachObjectToCollisionObject);
                EditorGUILayout.Separator();

                extraNormalOffset = EditorGUILayout.Slider(new GUIContent("Extra normal offset", "Set the extra offset using hit normal"), extraNormalOffset, -10, 10, new GUILayoutOption[] { GUILayout.Width(0.81f * position.width) });
                extraNormalOffset = Mathf.Clamp(extraNormalOffset, -10, 10);

                pivotMode = (cPivotMode)EditorGUILayout.EnumPopup(new GUIContent("Pivot mode", "Select the pivot mode to positionate prefab using hit normal"), pivotMode, new GUILayoutOption[] { GUILayout.Width(0.81f * position.width) });
                EditorGUILayout.Separator();
                EditorGUILayout.Separator();

                objectScaleRange   = EditorGUILayout.Vector2Field(new GUIContent("Scale range", "Randomize object scale between 2 values"), objectScaleRange, new GUILayoutOption[] { GUILayout.Width(0.5f * position.width) });
                objectScaleRange.x = Mathf.Clamp(objectScaleRange.x, 0.01f, 10);
                objectScaleRange.y = Mathf.Clamp(objectScaleRange.y, 0.01f, 10);

                EditorGUILayout.Separator();

                objectRotationRangeX   = EditorGUILayout.Vector2Field(new GUIContent("Rotation range X", "Randomize object rotation in X axis between 2 values"), objectRotationRangeX, new GUILayoutOption[] { GUILayout.Width(0.5f * position.width) });
                objectRotationRangeX.x = Mathf.Clamp(objectRotationRangeX.x, 0, 360);
                objectRotationRangeX.y = Mathf.Clamp(objectRotationRangeX.y, 0, 360);

                objectRotationRangeY   = EditorGUILayout.Vector2Field(new GUIContent("Rotation range Y", "Randomize object rotation in Y axis between 2 values"), objectRotationRangeY, new GUILayoutOption[] { GUILayout.Width(0.5f * position.width) });
                objectRotationRangeY.x = Mathf.Clamp(objectRotationRangeY.x, 0, 360);
                objectRotationRangeY.y = Mathf.Clamp(objectRotationRangeY.y, 0, 360);

                objectRotationRangeZ   = EditorGUILayout.Vector2Field(new GUIContent("Rotation range Z", "Randomize object rotation in Z axis between 2 values"), objectRotationRangeZ, new GUILayoutOption[] { GUILayout.Width(0.5f * position.width) });
                objectRotationRangeZ.x = Mathf.Clamp(objectRotationRangeZ.x, 0, 360);
                objectRotationRangeZ.y = Mathf.Clamp(objectRotationRangeZ.y, 0, 360);

                EditorGUILayout.Separator();
                EditorGUILayout.Separator();
            }

            EditorBasicFunctions.DrawEditorBox("Choose prefab!", Color.white, position);

            genericObject = EditorBasicFunctions.DrawPrefabList(genericObject, position);

            EditorGUILayout.Separator();
            EditorGUILayout.Separator();

            if (genericObject)
            {
                EditorBasicFunctions.DrawEditorBox(genericObject.name, Color.yellow, position);
            }
            else
            {
                EditorBasicFunctions.DrawEditorBox("No object selected to put!", Color.gray, position);
            }
        }