public void OnInspectorGUI() { var skin = InspectorEditor.Skin; using (GUI.AlignBlock.Center) GUILayout.Label(GUI.MakeLabel("AGXUnity Editor Settings", 24, true), skin.Label); BuildPlayer_CopyBinaries = InspectorGUI.Toggle(GUI.MakeLabel("<b>Build:</b> Copy AGX Dynamics binaries", false, "[Recommended enabled]\nCopy dependent AGX Dynamics binaries to target player directory."), BuildPlayer_CopyBinaries); AGXDynamics_LogPath = InspectorGUI.ToggleSaveFile(GUI.MakeLabel("AGX Dynamics log"), AGXDynamics_LogEnabled, enable => AGXDynamics_LogEnabled = enable, AGXDynamics_LogPath, "AGXDynamicsLog", "txt", "AGX Dynamics log filename", extension => true); if (ExternalAGXInitializer.IsApplied) { DirectoryInfo newAgxDir = null; if (InspectorGUI.SelectFolder(GUI.MakeLabel("AGX Dynamics directory"), ExternalAGXInitializer.Instance.AGX_DIR, "AGX Dynamics directory", newFolder => newAgxDir = new DirectoryInfo(newFolder))) { if (ExternalAGXInitializer.FindType(newAgxDir) == ExternalAGXInitializer.AGXDirectoryType.Unknown) { Debug.LogError($"ERROR: {newAgxDir.FullName} doesn't seems to be an AGX Dynamics root folder."); } else if (EditorUtility.DisplayDialog("Change AGX Dynamics directory", $"Change from {ExternalAGXInitializer.Instance.AGX_DIR} to {newAgxDir.FullName}?\n\n" + "Unity will restart during the change.", "Yes", "Cancel")) { ExternalAGXInitializer.ChangeRootDirectory(newAgxDir); } } } else if (!IO.Utils.AGXDynamicsInstalledInProject && ExternalAGXInitializer.UserSaidNo) { var rect = EditorGUILayout.GetControlRect(); var orgWidth = rect.width; rect.width = EditorGUIUtility.labelWidth; EditorGUI.PrefixLabel(rect, GUI.MakeLabel("Select AGX Dynamics root folder"), skin.Label); rect.x += rect.width; rect.width = orgWidth - EditorGUIUtility.labelWidth; if (UnityEngine.GUI.Button(rect, GUI.MakeLabel("AGX Dynamics root directory..."))) { var agxDir = EditorUtility.OpenFolderPanel("AGX Dynamics root directory", "Assets", ""); if (!string.IsNullOrEmpty(agxDir)) { var agxDirInfo = new DirectoryInfo(agxDir); var type = ExternalAGXInitializer.FindType(agxDirInfo); if (type == ExternalAGXInitializer.AGXDirectoryType.Unknown) { Debug.LogWarning($"{agxDir} isn't recognized as an AGX Dynamics root directory."); } else if (EditorUtility.DisplayDialog("Add AGX Dynamics directory", $"Set AGX Dynamics root directory to {agxDir}?\n\n" + "Unity will restart during the process.", "Yes", "Cancel")) { ExternalAGXInitializer.UserSaidNo = false; ExternalAGXInitializer.ChangeRootDirectory(agxDirInfo); } } } } InspectorGUI.Separator(1, 4); // BuiltInToolsTool settings GUI. { HandleKeyHandlerGUI(GUI.MakeLabel("Select game object"), BuiltInToolsTool_SelectGameObjectKeyHandler); HandleKeyHandlerGUI(GUI.MakeLabel("Select rigid body game object"), BuiltInToolsTool_SelectRigidBodyKeyHandler); HandleKeyHandlerGUI(GUI.MakeLabel("Pick handler (scene view)"), BuiltInToolsTool_PickHandlerKeyHandler); } }