Esempio n. 1
0
        private void DrawContent()
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUI.BeginChangeCheck();
            maxParticles.intValue = Mathf.Max(1, EditorGUILayout.IntField("Max Particles", maxParticles.intValue));
            EditorGUILayout.LabelField("(" + Mathf.CeilToInt((float)maxParticles.intValue / GPUParticleEmitter.THREAD_COUNT) * GPUParticleEmitter.THREAD_COUNT + " in Buffer)", Styles.textRight, GUILayout.Width(EditorGUIUtility.labelWidth / 2f));
            if (EditorGUI.EndChangeCheck())
            {
                for (int i = 0; i < targets.Length; i++)
                {
                    GPUParticleEmitter temp = (GPUParticleEmitter)targets[i];
                    temp.DispatchInit();
                }
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.Space();

            EditorGUILayout.PropertyField(simulationSpace, new GUIContent("Simulation Space"));
            if (simulationSpace.enumValueIndex == (int)SimulationSpace.Custom)
            {
                EditorGUILayout.PropertyField(simulationParent, new GUIContent("Simulation Parent"));
            }

            timeScale.floatValue = Mathf.Max(0f, EditorGUILayout.FloatField("Time Scale", timeScale.floatValue));
        }
Esempio n. 2
0
        private void DrawContent()
        {
            EditorGUILayout.PropertyField(colorMode, new GUIContent("Color Mode"));
            switch (colorMode.enumValueIndex)
            {
            case (int)ColorMode.Constant:
                EditorGUILayout.PropertyField(color, new GUIContent("Color"));
                break;

            case (int)ColorMode.OverLife:
                EditorGUILayout.PropertyField(colorOverLife, new GUIContent("Gradient"));
                colorSteps.intValue = Mathf.Max(2, EditorGUILayout.IntField(new GUIContent("Steps"), colorSteps.intValue));
                for (int i = 0; i < targets.Length; i++)
                {
                    GPUParticleEmitter temp = (GPUParticleEmitter)targets[i];
                    temp.UpdateColorOverLifeTexture();
                }
                break;
            }
        }
Esempio n. 3
0
        private void DrawContent()
        {
            EditorGUILayout.PropertyField(sizeMode, new GUIContent("Size Mode"));
            switch (sizeMode.enumValueIndex)
            {
            case (int)SizeMode.Constant:
                size.floatValue = Mathf.Max(0f, EditorGUILayout.FloatField(new GUIContent("Size"), size.floatValue));
                break;

            case (int)SizeMode.OverLife:
                EditorGUILayout.CurveField(sizeOverLife, Color.green, new Rect(0, 0, 1, 1), new GUIContent("Size Over Life"));
                sizeSteps.intValue = Mathf.Max(2, EditorGUILayout.IntField(new GUIContent("Steps"), sizeSteps.intValue));
                for (int i = 0; i < targets.Length; i++)
                {
                    GPUParticleEmitter temp = (GPUParticleEmitter)targets[i];
                    temp.UpdateSizeOverLifeBuffer();
                }
                break;
            }
            //sizeVariation.floatValue = Mathf.Clamp(EditorGUILayout.FloatField(new GUIContent("Variation (%)"), sizeVariation.floatValue), 0f, 100f);
        }