private void GetUIKeyInput() { if (Input.GetKeyDown(KeyCode.I)) { UI_GameScene gameSceneUI = Managers.UI.SceneUI as UI_GameScene; UI_Inventory invenUI = gameSceneUI.InvenUI; if (invenUI.gameObject.activeSelf) { invenUI.gameObject.SetActive(false); } else { invenUI.gameObject.SetActive(true); invenUI.RefreshUI(); } } if (Input.GetKeyDown(KeyCode.C)) { UI_GameScene gameSceneUI = Managers.UI.SceneUI as UI_GameScene; UI_Stat statUI = gameSceneUI.StatUi; if (statUI.gameObject.activeSelf) { statUI.gameObject.SetActive(false); } else { statUI.gameObject.SetActive(true); statUI.RefreshUI(); } } }
private void UpdateStat(GameObject go) { UI_Stat stat = go.GetComponent <UI_Stat>(); // Initialize card if not done yet stat.Name.text = stat.nameText; stat.Actual.text = stat.actualText; stat.Target.text = stat.targetText; }
// ======================================= // ========== PRIVATE FUNCTIONS ========== // ======================================= private void computeDebrief() { computeDebriefInformations = true; int note = 0; int totalNote = 0; // DETAILS if (manager.won) { manager.details.text = Global.data.currentLevelWinDescription; manager.gameOverTitle.text = "VICTOIRE !"; } else { manager.details.text = Global.data.currentLevelLostDescription; manager.gameOverTitle.text = "Défaite ..."; } // ========== STATISTICS ========== foreach (PairEStatTrackedEntityInt targetStat in Global.data.targetStats) { totalNote++; // I. First, add all expexted stat from the level GameObject go = Utility.clone(manager.Stat_Prefab, manager.statisticsScrollView); go.transform.localScale = new Vector3(1, 1, 1); go.transform.localPosition = new Vector3(0, 0, 0); go.transform.localEulerAngles = new Vector3(0, 0, 0); UI_Stat stat = go.GetComponent <UI_Stat>(); int target = targetStat.b; int actual = 0; for (int i = 0; i < Global.data.trackedEntities.Count; i++) { PairEStatTrackedEntityInt actualStat = Global.data.trackedEntities[i]; if (actualStat.a == targetStat.a) { actual = actualStat.b; Global.data.trackedEntities.RemoveAt(i); break; } } // Set stat's text stat.nameText = targetStat.a.ToString(); stat.targetText = target.ToString(); stat.actualText = actual.ToString(); // Set stat's color if (actual < target) { note++; stat.Actual.color = Color.blue; } else if (actual == target) { note++; stat.Actual.color = Color.green; } else { stat.Actual.color = Color.red; } } // II. Second, add all unexpected stat for (int i = 0; i < Global.data.trackedEntities.Count; i++) { PairEStatTrackedEntityInt actualStat = Global.data.trackedEntities[i]; if (actualStat.b > 0) { GameObject go = Utility.clone(manager.Stat_Prefab, manager.statisticsScrollView); go.transform.localScale = new Vector3(1, 1, 1); go.transform.localPosition = new Vector3(0, 0, 0); go.transform.localEulerAngles = new Vector3(0, 0, 0); UI_Stat stat = go.GetComponent <UI_Stat>(); stat.nameText = actualStat.a.ToString(); stat.targetText = 0.ToString(); stat.actualText = actualStat.b.ToString(); stat.Actual.color = Color.green; note--; } } manager.note = note; manager.totalNote = totalNote; manager.noteText.text = manager.note.ToString() + " / " + manager.totalNote.ToString(); // UNLOCKABLES foreach (GameObject go in Global.data.currentLevelCardRewards) { if (go != null) { GameObject clone = Utility.clone(go, manager.cardsUnlockableScrollView); clone.transform.localScale = new Vector3(1, 1, 1); clone.transform.localPosition = new Vector3(0, 0, 0); clone.transform.localEulerAngles = new Vector3(0, 0, 0); clone.GetComponent <Button>().interactable = manager.won; } } foreach (EGalleryModel model in Global.data.currentLevelGalleryModelRewards) { GameObject go = Utility.clone(manager.Text_ContentSizeFitter_Prefab, manager.galleryModelsUnlockableScrollView); go.transform.localScale = new Vector3(1, 1, 1); go.transform.localPosition = new Vector3(0, 0, 0); go.transform.localEulerAngles = new Vector3(0, 0, 0); go.GetComponent <Text>().text = "Modèle " + model.ToString(); go.GetComponent <Text>().color = (manager.won && manager.note == manager.totalNote) ? Color.green : Color.red; } }