protected override void PrepareMenuCategories() { int categoryTypes = anatomySceneManager.EyeCategories.EyeCategoriesList.Count; for (int i = 0; i < categoryTypes; i++) { GameObject category = (GameObject)Instantiate(categoryWholePrefab, transform.position, Quaternion.identity); category.SetActive(true); category.name = anatomySceneManager.EyeCategories.EyeCategoriesList[i].Type.ToString(); category.transform.SetParent(menuContent.transform, true); category.transform.localScale = Vector3.one; category.transform.Find("ToggleCategory").GetComponentInChildren <TextMeshProUGUI> ().text = anatomySceneManager.EyeCategories.EyeCategoriesList [i].NamePolish; categoryList.Add(category); EyeCategory statement = anatomySceneManager.EyeCategories.EyeCategoriesList [i].Type; int elements = 0; float height = 0; float spacing = category.GetComponent <VerticalLayoutGroup> ().spacing; switch (statement) { case EyeCategory.EYESOCKET: elements = anatomySceneManager.EyeElements.EyeSocketList.Count; height = elements * (toggleElementPrefab.GetComponent <RectTransform> ().sizeDelta.y + spacing) + category.GetComponent <RectTransform> ().sizeDelta.y + spacingCategory; category.GetComponent <RectTransform> ().sizeDelta = new Vector2(category.GetComponent <RectTransform> ().sizeDelta.x, height); break; case EyeCategory.MUSCLES: elements = anatomySceneManager.EyeElements.MusclesList.Count; height = elements * (toggleElementPrefab.GetComponent <RectTransform> ().sizeDelta.y + spacing) + category.GetComponent <RectTransform> ().sizeDelta.y + spacingCategory; category.GetComponent <RectTransform> ().sizeDelta = new Vector2(category.GetComponent <RectTransform> ().sizeDelta.x, height); break; case EyeCategory.NERVES: elements = anatomySceneManager.EyeElements.NervesList.Count; height = elements * (toggleElementPrefab.GetComponent <RectTransform> ().sizeDelta.y + spacing) + category.GetComponent <RectTransform> ().sizeDelta.y + spacingCategory; category.GetComponent <RectTransform> ().sizeDelta = new Vector2(category.GetComponent <RectTransform> ().sizeDelta.x, height); break; case EyeCategory.EYEBALL: elements = anatomySceneManager.EyeElements.EyeballList.Count; height = elements * (toggleElementPrefab.GetComponent <RectTransform> ().sizeDelta.y + spacing) + category.GetComponent <RectTransform> ().sizeDelta.y + spacingCategory; category.GetComponent <RectTransform> ().sizeDelta = new Vector2(category.GetComponent <RectTransform> ().sizeDelta.x, height); break; case EyeCategory.OTHER: elements = anatomySceneManager.EyeElements.OtherList.Count; height = elements * (toggleElementPrefab.GetComponent <RectTransform> ().sizeDelta.y + spacing) + category.GetComponent <RectTransform> ().sizeDelta.y + spacingCategory; category.GetComponent <RectTransform> ().sizeDelta = new Vector2(category.GetComponent <RectTransform> ().sizeDelta.x, height); break; default: break; } } }
private List <string> DrawAnswers(string partName, EyeCategory eyeCategory, string langVersion) { int howMany = 3; List <string> listToExpel = new List <string> (); List <string> results = new List <string> (); List <Element> listName = new List <Element> (); switch (eyeCategory) { case EyeCategory.EYEBALL: listName = eyeElements.EyeballList; break; case EyeCategory.MUSCLES: listName = eyeElements.MusclesList; break; case EyeCategory.NERVES: listName = eyeElements.NervesList; break; case EyeCategory.EYESOCKET: listName = eyeElements.EyeSocketList; break; default: break; } for (int x = 0; x < listName.Count; x++) { if (langVersion == "Pl") { listToExpel.Add(listName[x].NamePolish); } else if (langVersion == "Lat") { listToExpel.Add(listName[x].NameLatin); } } listToExpel.Remove(partName); for (int i = 0; i < howMany; i++) { int rand = UnityEngine.Random.Range(0, listToExpel.Count - 1); results.Add(listToExpel [rand]); listToExpel.RemoveAt(rand); } return(results); }
private void ActivateEyeCategory(EyeCategory eyeCategory) { switch (eyeCategory) { case EyeCategory.EYEBALL: foreach (var p in eyeElements.EyeballList) { GetPartScript.GetPart(modelObject, p.DescriptionFileName).SetActive(true); } break; case EyeCategory.MUSCLES: foreach (var p in eyeElements.MusclesList) { GetPartScript.GetPart(modelObject, p.DescriptionFileName).SetActive(true); } break; case EyeCategory.NERVES: foreach (var p in eyeElements.NervesList) { GetPartScript.GetPart(modelObject, p.DescriptionFileName).SetActive(true); } break; case EyeCategory.EYESOCKET: foreach (var p in eyeElements.EyeSocketList) { GetPartScript.GetPart(modelObject, p.DescriptionFileName).SetActive(true); } break; default: break; } }
private string GetDescriptionFileName(string question, EyeCategory eyeCategory, string version) { string partName = string.Empty; switch (eyeCategory) { case EyeCategory.EYEBALL: foreach (var p in eyeElements.EyeballList) { if (version == "Pl") { if (p.NamePolish == question) { partName = p.DescriptionFileName; break; } } else if (version == "Lat") { if (p.NameLatin == question) { partName = p.DescriptionFileName; break; } } } break; case EyeCategory.MUSCLES: foreach (var p in eyeElements.MusclesList) { if (version == "Pl") { if (p.NamePolish == question) { partName = p.DescriptionFileName; break; } } else if (version == "Lat") { if (p.NameLatin == question) { partName = p.DescriptionFileName; break; } } } break; case EyeCategory.NERVES: foreach (var p in eyeElements.NervesList) { if (version == "Pl") { if (p.NamePolish == question) { partName = p.DescriptionFileName; break; } } else if (version == "Lat") { if (p.NameLatin == question) { partName = p.DescriptionFileName; break; } } } break; case EyeCategory.EYESOCKET: foreach (var p in eyeElements.EyeSocketList) { if (version == "Pl") { if (p.NamePolish == question) { partName = p.DescriptionFileName; break; } } else if (version == "Lat") { if (p.NameLatin == question) { partName = p.DescriptionFileName; break; } } } break; default: break; } return(partName); }
private void MakeQuestion(string question, EyeCategory eyeCategory, string version) { string partName = string.Empty; List <string> readyQuestion = new List <string> (); int rand = UnityEngine.Random.Range(0, 3); // reset position of whole eye model ResetPosition(modelObject); // prepare question readyQuestion = DrawAnswers(question, eyeCategory, version); readyQuestion.Insert(rand, question); if (readyQuestion.Count != 4) { Debug.Log("Error in MakeQuestion"); } else { quizUIManager.ChangeButtonText("a", readyQuestion [0]); quizUIManager.ChangeButtonText("b", readyQuestion [1]); quizUIManager.ChangeButtonText("c", readyQuestion [2]); quizUIManager.ChangeButtonText("d", readyQuestion [3]); } // if was first question of quiz if (wasFirst) { for (int i = 0; i < childCount; i++) { // prepare previous element of model if (modelObject.transform.GetChild(i).gameObject == previousElement) { Renderer rend = modelObject.transform.GetChild(i).GetComponent <Renderer> (); rend.material.color = previousColor; break; } } // prepare current element of model partName = GetDescriptionFileName(question, eyeCategory, version); PrepareElement(partName); } else { // prepare current element of model partName = GetDescriptionFileName(question, eyeCategory, version); PrepareElement(partName); wasFirst = true; } // increase question number int whichQuestion = nr; whichQuestion++; quizUIManager.UpdateQuestionNr(whichQuestion); // deactivate all elements of model for (int i = 0; i < childCount; i++) { modelObject.transform.GetChild(i).gameObject.SetActive(false); } // activate needed eye category ActivateEyeCategory(eyeCategory); }