/// <summary> /// OnGUI. /// </summary> void OnGUI() { mScrollPosition = EditorGUILayout.BeginScrollView(mScrollPosition, new GUILayoutOption[0]); for (int i = 0, countI = mPopups.ListPopup.Count; i < countI; i++) { MyUGUIConfigPopup popup = mPopups.ListPopup[i]; popup.IsFoldOut = EditorGUILayout.Foldout(popup.IsFoldOut, popup.ID.ToString()); if (popup.IsFoldOut) { EditorGUI.indentLevel++; if (i < mPopups.NumDefault) { EditorGUI.BeginDisabledGroup(i < mPopups.NumDefault); EditorGUILayout.TextField("Script", popup.ScriptName + ".cs", GUILayout.Width(400)); EditorGUILayout.TextField("Prefab", popup.PrefabName + ".prefab", GUILayout.Width(400)); EditorGUI.EndDisabledGroup(); } else { popup.ScriptNameIndex = EditorGUILayout.Popup("Script", popup.ScriptNameIndex, mScriptNames); popup.ScriptName = mScriptNames[popup.ScriptNameIndex]; popup.ScriptName = popup.ScriptName.Equals("<empty>") ? string.Empty : popup.ScriptName.Substring(0, popup.ScriptName.Length - 3); popup.PrefabNameIndex = EditorGUILayout.Popup("Prefab", popup.PrefabNameIndex, mPrefabNames); popup.PrefabName = mPrefabNames[popup.PrefabNameIndex]; popup.PrefabName = popup.PrefabName.Equals("<empty>") ? string.Empty : popup.PrefabName.Substring(0, popup.PrefabName.Length - 7); } EditorGUI.indentLevel--; } if (i < countI - 1) { EditorGUILayout.LabelField(string.Empty); } } EditorGUILayout.EndScrollView(); EditorUtility.SetDirty(mPopups); EditorGUILayout.LabelField(string.Empty); if (GUILayout.Button("Reset", GUILayout.Width(100))) { _DeleteAssetFile(); _LoadAssetFile(); _UpdateNewPopups(); Debug.Log("[MyClasses] Data was reset."); } }
/// <summary> /// Correct values. /// </summary> private void _CorrectValues() { mScriptNames = _GetPopupScriptNames(); mPrefabNames = _GetPopupPrefabNames(); for (int i = 0, countI = mPopups.ListPopup.Count; i < countI; i++) { MyUGUIConfigPopup popup = mPopups.ListPopup[i]; if (popup.ScriptNameIndex >= mScriptNames.Length || !popup.ScriptName.Equals(mScriptNames[popup.ScriptNameIndex])) { string scriptName = popup.ScriptName + ".cs"; popup.ScriptNameIndex = 0; for (int j = 0; j < mScriptNames.Length; j++) { if (scriptName.Equals(mScriptNames[j])) { popup.ScriptNameIndex = j; break; } } } if (popup.PrefabNameIndex >= mPrefabNames.Length || !popup.PrefabName.Equals(mPrefabNames[popup.PrefabNameIndex])) { string prefabName = popup.PrefabName + ".prefab"; popup.PrefabNameIndex = 0; for (int j = 0; j < mPrefabNames.Length; j++) { if (prefabName.Equals(mPrefabNames[j])) { popup.PrefabNameIndex = j; break; } } } } }