void SetMainInfo() { WordPicture.SetBool(words[CurrentWord].ID, false); CurrentWord++; if (CurrentWord < words.Count) { CurrentStage = Stage.PreGuess; if (PracticeKanjis != null) { for (int i = 0; i < PracticeKanjis.Count; i++) { PracticeKanjis[i].Kill(); } PracticeKanjis.Clear(); } if (PracticeSlots != null) { for (int i = 0; i < PracticeSlots.Count; i++) { Destroy(PracticeSlots[i].gameObject); } PracticeSlots.Clear(); } PracticeKanjis = new List <PracticeKanji>(); PracticeSlots = new List <Slot>(); SlotsAtTheirPlace = 0; float R = Random.Range(0.0f, 1.0f); Debug.Log(R); if (R < GameController.instance.ChanceOfFuriganaChallenge) { CurrentMode = Mode.Furigana; } else { CurrentMode = Mode.Picture; } Reading.text = words[CurrentWord].Reading; Meaning.text = words[CurrentWord].Meaning; float StartingPosition = SlotsPart.rect.width / (words[CurrentWord].Syllables.Count * 2); float StepWidth = SlotsPart.rect.width / words[CurrentWord].Syllables.Count; if (CurrentMode == Mode.Picture) { WordPicture.gameObject.SetActive(true); WordPicture.SetBool(words[CurrentWord].ID, true); Reading.gameObject.SetActive(false); } else { WordPicture.gameObject.SetActive(false); Reading.gameObject.SetActive(true); } List <Kanji> MixKanjis = new List <Kanji>(); Slot PS; for (int i = 0; i < words[CurrentWord].KanjiIDs.Count; i++) { Kanji TK = GameController.instance.GetKanji(words[CurrentWord].KanjiIDs[i]); MixKanjis.Add(TK); PS = Instantiate(PrefabSlot, new Vector3(0, 0, 100), SlotsPart.rotation, SlotsPart); PS.rectT.anchoredPosition = new Vector3(StartingPosition + StepWidth * i, SlotY, 0.0f); PS.SetInfo(words[CurrentWord].Syllables[i], TK.ID); PS.Reading.gameObject.SetActive(false); PracticeSlots.Add(PS); } StartingPosition = KanjisPart.rect.width / (GameController.instance.AllKanjisForPractice * 2); StepWidth = KanjisPart.rect.width / GameController.instance.AllKanjisForPractice; for (int i = 0; i < GameController.instance.AllKanjisForPractice - words[CurrentWord].KanjiIDs.Count; i++) { MixKanjis.Add(GameController.instance.GetRandomKanji()); } MixKanjis = ShuffleKanjiList(MixKanjis); int k = 0; // this is kanji's position per line float StepHeight = 0.0f; for (int i = 0; i < MixKanjis.Count; i++) { PracticeKanji PK = Instantiate(PrefabKanji, new Vector3(0, 0, 100), KanjisPart.rotation, KanjisPart); if (StartingPosition + StepWidth * k >= KanjisPart.rect.width) { k = 0; StepHeight += PK.rectTransform.rect.height + 5.0f; } PK.rectTransform.anchoredPosition = new Vector3(StartingPosition + StepWidth * k, KanjiY - StepHeight, 0.0f); PK.SetInfo(MixKanjis[i]); PracticeKanjis.Add(PK); k++; } } else { GameController.instance.MoveToScene("MainMenu"); } }