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;
                }
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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;
            }
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }