I’m trying to make a custom editor with multiple buttons that each display their own Object Picker upon click. I get the Object Picker but I’m having troubles assigning the events I get to the different buttons. The ShowObjectPicker function accepts a control ID as an argument, but I have no idea how to use it to differenciate between different pickers. Here is my code:
// Button 1
if (GUILayout.Button ("Button 1")) {
int controlID = EditorGUIUtility.GetControlID (FocusType.Passive);
EditorGUIUtility.ShowObjectPicker<UnityEngine.GameObject> (null, false, "", controlID);
}
if (Event.current.commandName == "ObjectSelectorClosed") {
if (EditorGUIUtility.GetObjectPickerObject() != null) {
myObject.myFunction1(EditorGUIUtility.GetObjectPickerObject());
}
}
// Button 2
if (GUILayout.Button ("Button 2")) {
int controlID = EditorGUIUtility.GetControlID (FocusType.Passive);
EditorGUIUtility.ShowObjectPicker<UnityEngine.GameObject> (null, false, "", controlID);
}
if (Event.current.commandName == "ObjectSelectorClosed") {
if (EditorGUIUtility.GetObjectPickerObject() != null) {
myObject.myFunction2(EditorGUIUtility.GetObjectPickerObject());
}
}
Both buttons display pickers, but the code cannot differenciate which picker sent the “ObjectSelectorClosed” event. How can make it to do that?