void SpawnTypeInput(Particle_SpawnController controller, SerializedObject serializedObject)
 {
     EditorGUILayout.BeginHorizontal();
     EditorGUILayout.LabelField("Input", GUILayout.Width(EditorGUIUtility.labelWidth));
     controller.inputKey = (KeyCode)EditorGUILayout.EnumPopup(controller.inputKey);
     EditorGUILayout.EndHorizontal();
 }
 void SpawnTypeCollision(Particle_SpawnController controller, SerializedObject serializedObject)
 {
     EditorGUILayout.BeginHorizontal();
     EditorGUILayout.LabelField("Collision", GUILayout.Width(EditorGUIUtility.labelWidth));
     controller.collisionType = (PhysicInteractionType)EditorGUILayout.EnumPopup(controller.collisionType);
     EditorGUILayout.EndHorizontal();
 }
        void ShowSpawnByTypeEvent(Particle_SpawnController controller, SerializedObject serializedObject)
        {
            SpawnByType spawnByType = controller.spawnByType;

            float labelWidth = EditorGUIUtility.labelWidth - 0.79f;

            switch (spawnByType)
            {
            case SpawnByType.Input:
                SpawnTypeInput(controller, serializedObject);
                break;

            case SpawnByType.Trigger:
                SpawnTypeTrigger(controller, serializedObject);
                break;

            case SpawnByType.Collision:
                SpawnTypeCollision(controller, serializedObject);
                break;

            case SpawnByType.Other:
                SpawnTypeOther(controller, serializedObject);
                break;
            }
        }
 void SpawnTypeOther(Particle_SpawnController controller, SerializedObject serializedObject)
 {
     controller.otherTrigger = (Particle_SpawnCondition)EditorGUILayout.ObjectField("Other", controller.otherTrigger, typeof(Particle_SpawnCondition), false);
 }