void setNextTestItem() { base.backEndItem = base.testItemBackEnd[base.currentTestNumber]; frontEndItem = testItemFrontEnd[base.currentTestNumber]; base.nextTest = false; }
public void CreateTest(LWTestItem t) { float fullScreenHeight = Camera.main.orthographicSize * 2; float fullScreenWidth = fullScreenHeight * 16 / 9; // basically height * screen aspect ratio //this will give us the world unit width of the screen (doubled it to account for the negative side) //divide the screen width by the amount of objects in the array to get offset from left side //changed this to fix something, make sure it didn't break everything else float offsetX = fullScreenWidth / (t.LetterButtons.Length + 2); float offsetY = fullScreenHeight / 2; float leftScreenPos = -fullScreenWidth / 2 + offsetX / 2; float topScreenPos = fullScreenHeight / 2 - offsetY / 2; GameObject o; if (!GameObject.Find("origin")) { o = new GameObject("origin"); o.transform.position = new Vector3(0, -offsetY / 2, 0); TextMesh tm = o.AddComponent <TextMesh>(); tm.alignment = TextAlignment.Center; tm.anchor = TextAnchor.MiddleCenter; tm.fontSize = 100; tm.color = Color.black; o.transform.localScale = Vector3.one * fullScreenHeight / 6f; o = new GameObject("topOrigin"); o.transform.position = new Vector3(0, offsetY / 2, 0); tm = o.AddComponent <TextMesh>(); tm.alignment = TextAlignment.Center; tm.anchor = TextAnchor.MiddleCenter; tm.fontSize = 100; tm.color = Color.black; o.transform.localScale = Vector3.one * fullScreenHeight / 6f; //o.layer = LayerMask.NameToLayer("fade"); o = new GameObject("midOrigin"); o.transform.position = new Vector3(0, 0, 0); tm = o.AddComponent <TextMesh>(); tm.alignment = TextAlignment.Center; tm.anchor = TextAnchor.MiddleCenter; tm.fontSize = 100; tm.color = Color.black; o.transform.localScale = Vector3.one * fullScreenHeight / 6f; //o.layer = LayerMask.NameToLayer("fade"); o = new GameObject("audio"); o.transform.position = new Vector3((-fullScreenWidth / 16) * 5, -offsetY / 2, 0); o = new GameObject("arrow"); o.transform.position = new Vector3((fullScreenWidth / 16) * 5, -offsetY / 2, 0); } for (int i = 0; i < t.LetterButtons.Length; i++) { if (t.isSounds) { if (t.LetterButtons.Length == 4) { float sideValue = (i % 2 == 0) ? -2f : 2f; float upValue = (i / 2 == 0) ? 2f : -2f; o = Instantiate(t.LetterButtons[i], new Vector3(sideValue, upValue, 0), new Quaternion()); o.transform.localScale = Vector3.one * fullScreenHeight / 3f; } else { o = Instantiate(t.LetterButtons[i], new Vector3(leftScreenPos + offsetX * (i + 1), i % 2 * 2f, 0), new Quaternion()); o.transform.localScale = Vector3.one * fullScreenHeight / 6f; } o.layer = LayerMask.NameToLayer("fadeOut"); if (t.isCorrect[i]) { o.name = "correct clone"; } else { o.name = "incorrect clone"; } GameObject text = new GameObject(); text.transform.parent = o.transform; float charCountRatio = t.testSounds[i].Length == 0 ? 1 : t.testSounds[i].Length; text.transform.localScale = new Vector3(.125f / charCountRatio, .125f / charCountRatio, 1); text.transform.localPosition = new Vector3(0, 0, -1); TextMesh tm = text.AddComponent <TextMesh>(); tm.alignment = TextAlignment.Center; tm.anchor = TextAnchor.MiddleCenter; tm.fontSize = 60; //tm.font = (Font)Resources.Load<Font>("Fonts/TimesNewRoman"); //tm.font = tnr; tm.color = Color.black; tm.text = t.testSounds[i] + ""; o.GetComponent <ClickCardLSSI>().isCorrect = t.isCorrect[i]; o.GetComponent <ClickCardLSSI>().responsePosition = i + 1; o.GetComponent <ClickCardLSSI>().responseName = t.testSounds[i]; } else if (t.isWords) { print("words"); offsetX = fullScreenWidth / 10; float dist = fullScreenHeight / 3f; o = Instantiate(t.LetterButtons[i], new Vector3((i - 2) * dist + dist / 2, offsetY / 3, 0), new Quaternion()); o.layer = LayerMask.NameToLayer("fadeOut"); if (t.isCorrect[i]) { o.name = "correct clone"; } else { o.name = "incorrect clone"; } GameObject child = new GameObject("image"); SpriteRenderer s = child.AddComponent <SpriteRenderer>(); s.sortingOrder = 0; s.sprite = t.wordPictures[i]; child.transform.parent = o.transform; child.transform.localPosition = new Vector3(0, 0, 0); o.GetComponent <ClickCardLSSI>().isCorrect = t.isCorrect[i]; o.GetComponent <ClickCardLSSI>().responsePosition = i + 1; o.GetComponent <ClickCardLSSI>().responseName = t.wordPictures[i].name; o.transform.localScale = Vector3.one * fullScreenHeight / 10f * 3f; //GameObject.Destroy(o.transform.GetChild(0).gameObject); } else if (t.isSentences) { offsetY = fullScreenHeight / 18; o = Instantiate(t.LetterButtons[i], new Vector3(0, fullScreenHeight / 2 - offsetY * ((i * 2) + 7), 0), new Quaternion()); if (t.isCorrect[i]) { o.name = "correct clone"; } else { o.name = "incorrect clone"; } string text = t.testSounds[i].Replace("N_L", "\n"); o.transform.Find("TextMeshObject").GetComponent <TMP_Text>().text = text; o.GetComponent <ClickCardLSSI>().isCorrect = t.isCorrect[i]; o.GetComponent <ClickCardLSSI>().responsePosition = i + 1; o.GetComponent <ClickCardLSSI>().responseName = text; o.transform.localScale = Vector3.one * fullScreenHeight / 10f; } else if (t.isButtons) { print("words"); offsetX = fullScreenWidth / 5; float scale = fullScreenHeight / 10f * 3f; o = Instantiate(t.LetterButtons[i], new Vector3(leftScreenPos + offsetX * ((i * 2) + 1), 0, 0), new Quaternion()); o.layer = LayerMask.NameToLayer("fadeOut"); if (t.isCorrect[i]) { o.name = "correct clone"; } else { o.name = "incorrect clone"; } GameObject child = new GameObject("image"); SpriteRenderer s = child.AddComponent <SpriteRenderer>(); s.sortingOrder = 0; s.sprite = t.wordPictures[i]; child.transform.parent = o.transform; child.transform.localPosition = new Vector3(0, 0, 0); o.GetComponent <ClickCardLSSI>().isCorrect = t.isCorrect[i]; o.GetComponent <ClickCardLSSI>().responsePosition = i + 1; o.GetComponent <ClickCardLSSI>().responseName = t.wordPictures[i].name; o.transform.localScale = Vector3.one * scale; //GameObject.Destroy(o.transform.GetChild(0).gameObject); } //else //{ // print("In else statement"); // o = Instantiate(t.LetterButtons[i], new Vector3(leftScreenPos + offsetX * i, 0, 0), new Quaternion()); // o.layer = LayerMask.NameToLayer("fadeOut"); // if (t.isCorrect[i]) // o.name = "correct clone"; // else // o.name = "incorrect clone"; // TextMesh tm = o.AddComponent<TextMesh>(); // tm.text = t.testLetters[i] + ""; // tm.alignment = TextAlignment.Center; // tm.anchor = TextAnchor.MiddleCenter; // tm.fontSize = 100; // o.GetComponent<TextChecker>().isCorrect = t.isCorrect[i]; // o.GetComponent<TextChecker>().itemNumber = i + 1; // o.transform.localScale = Vector3.one * fullScreenHeight / 6f; //} } if (t.isWords && t.useText) { print(GameObject.Find("origin").transform.position); o = Instantiate(t.sentenceBox, GameObject.Find("origin").transform.position, new Quaternion()); o.transform.position = GameObject.Find("origin").transform.position; o.GetComponent <RectTransform>().sizeDelta = new Vector2(fullScreenWidth / 4 * 2, fullScreenHeight / 5); o.name = "sentence clone"; o.GetComponent <TMP_Text>().text = t.displayedText; o.transform.localScale = Vector3.one * fullScreenHeight / 10f; //GameObject.Find("origin").GetComponent<TextMesh>().text = t.displayedText; } else if (t.isSentences) { o = Instantiate(t.sentenceBox, new Vector3(0, fullScreenHeight / 2 - offsetY * 4, 0), new Quaternion()); o.transform.position = new Vector3(0, fullScreenHeight / 2 - offsetY * 4, 0); o.name = "sentenceBox clone"; o.GetComponent <RectTransform>().sizeDelta = new Vector2(fullScreenWidth / 3 * 2, fullScreenHeight / 6); o.GetComponent <TMP_Text>().text = t.displayedText; o.transform.localScale = Vector3.one * fullScreenHeight / 10f; } //This is to make sure we are only printing what we need //Will be used for all examples so event system will handle printing if (!t.skipPrint) { //may need to be 0, check if resetTimer OutputHandler.StartTimer(t.replay?t.replay.length:0); } }