public static bool DrawDatasetTrackableInspector(SerializedDataSetTrackable serializedObject, bool resetTrackable, Func <ConfigData, string[]> getTrackableNamesFunc, string trackableLabel) { bool result = false; string[] array = new string[ConfigDataManager.Instance.NumConfigDataObjects]; ConfigDataManager.Instance.GetConfigDataNames(array); int num = -1; if (!serializedObject.DataSetPathProperty.hasMultipleDifferentValues) { num = VuforiaUtilities.GetIndexFromString(serializedObject.GetDataSetName(), array); if (num < 0) { num = 0; } } EditorGUI.BeginChangeCheck(); int num2 = EditorGUILayout.Popup("Database", num, array, new GUILayoutOption[0]); bool flag = EditorGUI.EndChangeCheck(); if (resetTrackable && num2 < 0) { num2 = 0; flag = true; } if (num2 >= 0) { string dataSetName = array[num2]; ConfigData configData = ConfigDataManager.Instance.GetConfigData(dataSetName); string[] array2 = getTrackableNamesFunc(configData); int num3 = -1; if (!serializedObject.TrackableNameProperty.hasMultipleDifferentValues) { num3 = VuforiaUtilities.GetIndexFromString(serializedObject.TrackableName, array2); if (num3 < 0) { num3 = 0; } } if (flag) { num3 = 0; } EditorGUI.BeginChangeCheck(); int num4 = EditorGUILayout.Popup(trackableLabel, num3, array2, new GUILayoutOption[0]); bool flag2 = EditorGUI.EndChangeCheck(); if (array2.Length != 0 && (flag | flag2 | resetTrackable)) { result = true; serializedObject.DataSetPath = ""; serializedObject.DataSetPath = VuforiaRuntimeUtilities.StripStreamingAssetsFromPath(ConfigDataManager.Instance.GetConfigData(array[num2]).FullPath); if (num4 >= 0) { string trackableName = array2[num4]; serializedObject.TrackableName = ""; serializedObject.TrackableName = trackableName; } } } else { EditorGUILayout.Popup(trackableLabel, -1, new string[0], new GUILayoutOption[0]); } return(result); }
public override void OnInspectorGUI() { VuforiaUtilities.DisableGuiForPrefab(base.target); base.DrawDefaultInspector(); using (base.serializedObject.Edit()) { TextConfigData textConfigData = ConfigDataManager.Instance.GetTextConfigData(); if (textConfigData.NumDictionaries > 1) { EditorGUILayout.HelpBox("The list of words the TextTracker can detect and track.\nThe word list is loaded from a binary file and can be extended by a list of custom words.", MessageType.Info); string[] array = new string[textConfigData.NumDictionaries]; string[] array2 = new string[textConfigData.NumDictionaries]; textConfigData.CopyDictionaryNamesAndFiles(array, array2, 0); int num = VuforiaUtilities.GetIndexFromString(this.mWordListFile.stringValue, array2); if (num < 0) { num = 0; } int num2 = EditorGUILayout.Popup("Word List", num, array, new GUILayoutOption[0]); this.mWordListFile.stringValue = array2[num2]; if (num2 == 0) { GUI.enabled = false; } } else { if (GUILayout.Button("No word list available. \nPlease copy it from the TextRecognition sample app. \nPress here to go to the download page for sample apps!", new GUILayoutOption[0])) { SceneManager.Instance.GoToSampleAppPage(); } GUI.enabled = false; } int expr_D8 = textConfigData.NumWordLists; string[] array3 = new string[expr_D8]; string[] array4 = new string[expr_D8]; textConfigData.CopyWordListNamesAndFiles(array3, array4, 0); int num3 = VuforiaUtilities.GetIndexFromString(this.mCustomWordListFile.stringValue, array4); if (num3 < 0) { num3 = 0; } int num4 = EditorGUILayout.Popup("Additional Word File", num3, array3, new GUILayoutOption[0]); if (num4 != num3) { if (num4 != 0) { TextRecoEditor.TestValidityOfWordListFile(array4[num4]); } this.mCustomWordListFile.stringValue = array4[num4]; } EditorGUILayout.LabelField("Additional Words:", new GUILayoutOption[0]); EditorGUILayout.HelpBox("Write one word per line. Open compound words can be specified using whitespaces.", MessageType.None); this.mAdditionalCustomWords.stringValue = EditorGUILayout.TextArea(this.mAdditionalCustomWords.stringValue, new GUILayoutOption[0]); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.HelpBox("The filter list allows to specify subset of words that will be detected and tracked.", MessageType.Info); EditorGUILayout.PropertyField(this.mFilterMode, new GUIContent("Filter Mode"), new GUILayoutOption[0]); if (this.mFilterMode.enumValueIndex != 0) { int num5 = VuforiaUtilities.GetIndexFromString(this.mFilterListFile.stringValue, array4); if (num5 < 0) { num5 = 0; } int num6 = EditorGUILayout.Popup("Filter List File", num5, array3, new GUILayoutOption[0]); if (num6 != num5) { if (num6 != 0) { TextRecoEditor.TestValidityOfWordListFile(array4[num6]); } this.mFilterListFile.stringValue = array4[num6]; } EditorGUILayout.LabelField("Additional Filter Words:", new GUILayoutOption[0]); EditorGUILayout.HelpBox("Write one word per line. Open compound words can be specified using whitespaces.", MessageType.None); this.mAdditionalFilterWords.stringValue = EditorGUILayout.TextArea(this.mAdditionalFilterWords.stringValue, new GUILayoutOption[0]); } EditorGUILayout.HelpBox("It is possible to use Word Prefabs to define augmentations for detected words. Each Word Prefab can be instantiated up to a maximum number.", MessageType.Info); if (EditorGUILayout.Toggle("Use Word Prefabs", this.mWordPrefabCreationMode.enumValueIndex == 1, new GUILayoutOption[0])) { this.mWordPrefabCreationMode.enumValueIndex = 1; EditorGUILayout.PropertyField(this.mMaximumWordInstances, new GUIContent("Max Simultaneous Words"), new GUILayoutOption[0]); } else { this.mWordPrefabCreationMode.enumValueIndex = 0; } } GUI.enabled = true; }