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)); }
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; } }
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); }