void OnGUI() { GUILayout.BeginHorizontal(GUI.skin.FindStyle("Toolbar")); GUI.SetNextControlName("OrderAchievementButton"); if (GUILayout.Button(actualOrder, GUI.skin.FindStyle("ToolBarButton"))) { GUI.FocusControl("OrderAchievementButton"); orderAchievements(); } if (GUILayout.Button("Add Achievement", GUI.skin.FindStyle("ToolBarButton"))) { achieverScript.addAchievement(); } displayTags = GUILayout.Toggle(displayTags, "Display Tags", "ToolBarButton"); GUILayout.FlexibleSpace(); searchString = GUILayout.TextField(searchString, GUI.skin.FindStyle("ToolbarSeachTextField"), GUILayout.Width(140)); if (GUILayout.Button("", GUI.skin.FindStyle("ToolbarSeachCancelButton"))) { // Remove focus if cleared searchString = ""; GUI.FocusControl(null); } GUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); circle = AssetDatabase.LoadAssetAtPath("Assets/ScoreLib/Sprites/Voyant.png", typeof(Texture)) as Texture; achieverScript = Achiever.instance; if (achieverScript == null) { return; } EditorGUILayout.EndHorizontal(); EditorStyles.textField.wordWrap = true; EditorGUILayout.BeginVertical(); scrollPos = EditorGUILayout.BeginScrollView(scrollPos); try { int i = 0; foreach (var achievement in Achiever.instance.achievementsScriptableObject.achievements.Where(a => a.tags.Contains(searchString) || a.name.Contains(searchString)).OrderBy(a => a.position)) { if (achievement.position == -1) { achievement.position = Achiever.instance.achievementsScriptableObject.achievements.IndexOf(achievement); } EditorGUILayout.BeginHorizontal(); EditorGUIUtility.labelWidth = 40; achievement.name = EditorGUILayout.TextField("Name", achievement.name, GUILayout.Width(140), GUILayout.Height(50)); string resultCheckOperationnel; checkOperationel(achievement, out resultCheckOperationnel); Rect rectTexture1 = new Rect(new Vector2(5, i * 52 + 20), new Vector2(15, 15)); GUI.DrawTexture(rectTexture1, circle, ScaleMode.ScaleToFit, true);//52 est parfait je suppose 50+1+1 donc height+margehaute+margebasse string resultCheckUsed; checkUsed(i, out resultCheckUsed); Rect rectTexture2 = new Rect(new Vector2(25, i * 52 + 20), new Vector2(15, 15)); GUI.DrawTexture(rectTexture2, circle, ScaleMode.ScaleToFit, true); GUI.color = Color.white; textureTooltip(rectTexture1, resultCheckOperationnel); textureTooltip(rectTexture2, resultCheckUsed); /* * if (rect.Contains(Event.current.mousePosition)) * { * Rect test = new Rect(GUILayoutUtility.GetLastRect().x + 40, GUILayoutUtility.GetLastRect().y, GUILayoutUtility.GetLastRect().width - 40, GUILayoutUtility.GetLastRect().height); * GUI.Box(test, ""); * EditorGUI.HelpBox(test, "tooltip", MessageType.Warning); * }*/ EditorGUIUtility.labelWidth = 70; EditorGUILayout.PrefixLabel("Description"); achievement.description = EditorGUILayout.TextArea(achievement.description, GUILayout.Height(50), GUILayout.Width(150)); EditorGUIUtility.labelWidth = 95; achievement.valueNeeded = EditorGUILayout.FloatField("Required Value", achievement.valueNeeded); if (displayTags) { EditorGUIUtility.labelWidth = 35; EditorGUILayout.PrefixLabel("Tags"); achievement.tags = EditorGUILayout.TextArea(achievement.tags, GUILayout.Height(50), GUILayout.Width(100)); } EditorGUIUtility.labelWidth = 60; achievement.croissant = EditorGUILayout.Toggle("Croissant", achievement.croissant, GUILayout.Width(75)); if (GUILayout.Button("Remove Achievement")) { removeAchievement(achievement); } EditorGUILayout.EndHorizontal(); i++; } } catch (System.NullReferenceException) { } catch (System.InvalidOperationException) { } EditorGUILayout.EndScrollView(); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(achieverScript.achievementsScriptableObject); } EditorGUILayout.EndVertical(); }
void OnGUI() { GUILayout.BeginHorizontal(GUI.skin.FindStyle("Toolbar")); GUI.SetNextControlName("OrderScoresButton"); if (GUILayout.Button(actualOrder, GUI.skin.FindStyle("ToolBarButton"))) { GUI.FocusControl("OrderScoresButton"); orderScore(); } if (GUILayout.Button("Add Score", GUI.skin.FindStyle("ToolBarButton"))) { scorerScript.addScore(); } if (GUILayout.Button("Reset PlayerPrefs", GUI.skin.FindStyle("ToolBarButton"))) { PlayerPrefs.DeleteAll(); foreach (var score in scorerScript.scoresScriptableObject.scores) { if (score.croissant) { score.value = 0; } else { score.value = int.MaxValue; } } } displayTags = GUILayout.Toggle(displayTags, "Display Tags", "ToolBarButton"); GUILayout.FlexibleSpace(); searchString = GUILayout.TextField(searchString, GUI.skin.FindStyle("ToolbarSeachTextField"), GUILayout.Width(140)); if (GUILayout.Button("", GUI.skin.FindStyle("ToolbarSeachCancelButton"))) { // Remove focus if cleared searchString = ""; GUI.FocusControl(null); } GUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); circle = AssetDatabase.LoadAssetAtPath("Assets/ScoreLib/Sprites/Voyant.png", typeof(Texture)) as Texture; scorerScript = Scorer.instance; achieverScript = Achiever.instance; if (scorerScript == null || achieverScript == null) { return; } EditorGUILayout.EndHorizontal(); EditorStyles.textField.wordWrap = true; EditorGUILayout.BeginVertical(); scrollPos = EditorGUILayout.BeginScrollView(scrollPos); try { int i = 0; foreach (var score in scorerScript.scoresScriptableObject.scores.Where(a => a.tags.Contains(searchString) || a.name.Contains(searchString)).OrderBy(a => a.position)) { if (score.position == -1) { score.position = scorerScript.scoresScriptableObject.scores.IndexOf(score); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Id " + scorerScript.scoresScriptableObject.scores.IndexOf(score), EditorStyles.boldLabel, GUILayout.Width(60)); string resultCheckOperationnel; checkOperationel(score, out resultCheckOperationnel); Rect rectTexture = new Rect(new Vector2(54, i * 20 + 4), new Vector2(15, 15)); GUI.DrawTexture(rectTexture, circle, ScaleMode.ScaleToFit, true); GUI.color = Color.white; EditorGUIUtility.labelWidth = 40; score.scoreType = (Scorer.ScoreType)EditorGUILayout.EnumPopup("Type", score.scoreType, GUILayout.Width(155)); AchieverWindow.textureTooltip(rectTexture, resultCheckOperationnel); EditorGUIUtility.labelWidth = 40; score.name = EditorGUILayout.TextField("Name", score.name); EditorGUIUtility.labelWidth = 70; EditorGUILayout.PrefixLabel("Description"); score.description = EditorGUILayout.TextArea(score.description, GUILayout.Width(150)); EditorGUIUtility.labelWidth = 43; score.value = EditorGUILayout.FloatField("Value", score.value); if (displayTags) { EditorGUIUtility.labelWidth = 35; EditorGUILayout.PrefixLabel("Tags"); score.tags = EditorGUILayout.TextArea(score.tags, GUILayout.Width(100)); } score.croissant = EditorGUILayout.Toggle("Croissant", score.croissant, GUILayout.Width(75)); int achievementFlags = getAchievementFlags(score); achievementFlags = EditorGUILayout.MaskField("Achievements", achievementFlags, adapt(achieverScript.getNames())); updateListAchievement(score, achievementFlags); if (score.scoreType == Scorer.ScoreType.GameScore) { int[] namesOriginIndex; string[] names = adapt(scorerScript.getNames(out namesOriginIndex)); int relatedScoresFlags = getRelatedScoreFlags(score, namesOriginIndex); relatedScoresFlags = EditorGUILayout.MaskField("Related Score", relatedScoresFlags, names); updateListRelatedScore(score, relatedScoresFlags, namesOriginIndex); } if (GUILayout.Button("Remove Score")) { removeScore(score); } EditorGUILayout.EndHorizontal(); i++; } } catch (System.NullReferenceException) { } catch (System.InvalidOperationException) { } EditorGUILayout.EndScrollView(); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(scorerScript.scoresScriptableObject); } EditorGUILayout.EndVertical(); }