void ShakeByInput(Camera_ShakeController controller, SerializedObject serializedObject)
 {
     EditorGUILayout.BeginHorizontal();
     EditorGUILayout.LabelField("Input", GUILayout.Width(EditorGUIUtility.labelWidth));
     controller.inputKey = (KeyCode)EditorGUILayout.EnumPopup(controller.inputKey);
     EditorGUILayout.EndHorizontal();
 }
 void ShakeByCollision(Camera_ShakeController controller, SerializedObject serializedObject)
 {
     EditorGUILayout.BeginHorizontal();
     EditorGUILayout.LabelField("Collision", GUILayout.Width(EditorGUIUtility.labelWidth));
     controller.collisionType = (PhysicInteractionType)EditorGUILayout.EnumPopup(controller.collisionType);
     EditorGUILayout.EndHorizontal();
 }
        void ShowShakeConditionByType(Camera_ShakeController controller, SerializedObject serializedObject)
        {
            SpawnByType conditionType = controller.conditionType;

            float labelWidth = EditorGUIUtility.labelWidth - 0.79f;

            switch (conditionType)
            {
            case SpawnByType.Input:
                ShakeByInput(controller, serializedObject);
                break;

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

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

            case SpawnByType.Other:
                ShakeByOther(controller, serializedObject);
                break;
            }
        }
 void ShakeByOther(Camera_ShakeController controller, SerializedObject serializedObject)
 {
     controller.otherTrigger = (Camera_ShakeCondition)EditorGUILayout.ObjectField("Other", controller.otherTrigger, typeof(Camera_ShakeCondition), false);
 }