private void OnGUI() { GUILayout.Label("Message Generator (Simple Message)", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); messageName = EditorGUILayout.TextField("Message Name", messageName); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); rosPackageName = EditorGUILayout.TextField("ROS Package Name", rosPackageName); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); ScriptableObject target = this; serializedObject = new SerializedObject(target); serializedObject.Update(); serializedProperty = serializedObject.FindProperty("messageElements"); EditorGUILayout.PropertyField(serializedProperty, true); serializedObject.ApplyModifiedProperties(); EditorGUILayout.EndHorizontal(); GUILayout.Space(40); EditorGUILayout.BeginHorizontal(); assetPath = EditorGUILayout.TextField("Asset Path", assetPath); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Set Default", GUILayout.Width(150))) { DeleteEditorPrefs(); GetEditorPrefs(); } EditorGUILayout.EndHorizontal(); GUILayout.Space(20); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Generate Simple Message")) { SetEditorPrefs(); SimpleMessageGenerator.Generate(messageName, rosPackageName, messageElements, assetPath); AssetDatabase.Refresh(); } EditorGUILayout.EndHorizontal(); GUILayout.Space(20); EditorGUIUtility.labelWidth = 300; }
public static void Generate(string ActionName, string RosPackageName, MessageElement[] GoalElements, MessageElement[] ResultElements, MessageElement[] FeedbackElements, string AssetPath) { SimpleMessageGenerator.Generate(ActionName + "Goal", RosPackageName, GoalElements, AssetPath); SimpleMessageGenerator.Generate(ActionName + "Feedback", RosPackageName, FeedbackElements, AssetPath); SimpleMessageGenerator.Generate(ActionName + "Result", RosPackageName, ResultElements, AssetPath); SimpleMessageGenerator.Generate(ActionName + "ActionGoal", RosPackageName, new MessageElement[] { new MessageElement() { messageType = MessageType.Header, messageName = "header", isArray = false }, new MessageElement() { messageType = MessageType.GoalID, messageName = "goal_id", isArray = false }, new MessageElement(ActionName + "Goal", "goal", false) }, AssetPath); SimpleMessageGenerator.Generate(ActionName + "ActionFeedback", RosPackageName, new MessageElement[] { new MessageElement() { messageType = MessageType.Header, messageName = "header", isArray = false }, new MessageElement() { messageType = MessageType.GoalStatus, messageName = "status", isArray = false }, new MessageElement(ActionName + "Feedback", "feedback", false) }, AssetPath); SimpleMessageGenerator.Generate(ActionName + "ActionResult", RosPackageName, new MessageElement[] { new MessageElement() { messageType = MessageType.Header, messageName = "header", isArray = false }, new MessageElement() { messageType = MessageType.GoalStatus, messageName = "status", isArray = false }, new MessageElement(ActionName + "Result", "result", false) }, AssetPath); }