1
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
namespace Dreamteck.Splines.Editor
|
||||
{
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
|
||||
[CustomEditor(typeof(ParticleController))]
|
||||
[CanEditMultipleObjects]
|
||||
public class ParticleControllerEditor : SplineUserEditor
|
||||
{
|
||||
protected override void BodyGUI()
|
||||
{
|
||||
base.BodyGUI();
|
||||
ParticleController user = (ParticleController)target;
|
||||
|
||||
serializedObject.Update();
|
||||
SerializedProperty _particleSystem = serializedObject.FindProperty("_particleSystem");
|
||||
|
||||
SerializedProperty emitPoint = serializedObject.FindProperty("emitPoint");
|
||||
SerializedProperty offset = serializedObject.FindProperty("offset");
|
||||
SerializedProperty volumetric = serializedObject.FindProperty("volumetric");
|
||||
SerializedProperty pauseWhenNotVisible = serializedObject.FindProperty("pauseWhenNotVisible");
|
||||
SerializedProperty applyRotation = serializedObject.FindProperty("apply3DRotation");
|
||||
SerializedProperty emitFromShell = serializedObject.FindProperty("emitFromShell");
|
||||
SerializedProperty scale = serializedObject.FindProperty("scale");
|
||||
SerializedProperty motionType = serializedObject.FindProperty("motionType");
|
||||
SerializedProperty wrapMode = serializedObject.FindProperty("wrapMode");
|
||||
SerializedProperty minCycles = serializedObject.FindProperty("minCycles");
|
||||
SerializedProperty maxCycles = serializedObject.FindProperty("maxCycles");
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
EditorGUILayout.PropertyField(_particleSystem, new GUIContent("Particle System"));
|
||||
if (_particleSystem.objectReferenceValue == null)
|
||||
{
|
||||
EditorGUILayout.HelpBox("No particle system is assigned", MessageType.Error);
|
||||
return;
|
||||
}
|
||||
EditorGUILayout.PropertyField(pauseWhenNotVisible);
|
||||
EditorGUILayout.PropertyField(emitPoint);
|
||||
EditorGUILayout.PropertyField(offset);
|
||||
EditorGUILayout.PropertyField(applyRotation);
|
||||
EditorGUILayout.PropertyField(volumetric);
|
||||
if (volumetric.boolValue)
|
||||
{
|
||||
EditorGUILayout.PropertyField(emitFromShell);
|
||||
EditorGUILayout.PropertyField(scale);
|
||||
}
|
||||
EditorGUILayout.PropertyField(motionType);
|
||||
if(motionType.intValue == (int)ParticleController.MotionType.FollowForward || motionType.intValue == (int)ParticleController.MotionType.FollowBackward)
|
||||
{
|
||||
EditorGUILayout.PropertyField(wrapMode);
|
||||
EditorGUILayout.Space();
|
||||
EditorGUILayout.LabelField("Path cycles (over " + user.particleSystemComponent.main.startLifetime.constantMax + "s.)", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField(minCycles, new GUIContent("Min. Cycles"));
|
||||
if (minCycles.floatValue < 0f) minCycles.floatValue = 0f;
|
||||
EditorGUILayout.PropertyField(maxCycles, new GUIContent("Max. Cycles"));
|
||||
if (maxCycles.floatValue < minCycles.floatValue) maxCycles.floatValue = minCycles.floatValue;
|
||||
}
|
||||
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
|
||||
if (!Application.isPlaying)
|
||||
{
|
||||
EditorGUILayout.HelpBox("Particles may not work in the editor preview. Play the game to see the in-game result.", MessageType.Info);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user