What should I do with this? It says that the text in bold is an unexpected symbol. I'm following the youtube tutorial of Unity for the Quiz Game. It's my first time using Unity please help me. Thank you.
using UnityEngine; using System.Collections; using UnityEngine.UI; using UnityEngine.SceneManagement; using System.Collections.Generic;
public class GameController : MonoBehaviour {
public Text questionText;
public SimpleObjectPool answerButtonGameObjectsPool;
public Transform answerButtonParent;
private DataController dataController;
private RoundData currentRoundData;
private QuestionData[] questionPool;
private bool isRoundActive;
private float timeRemaining;
private int questionIndex;
private int playerScore;
private List<GameObject> answerButtonGameObjects = new List<GameObject>();
// Use this for initialization
void Start ()
{
dataController = FindObjectOfType<DataController> ();
currentRoundData = dataController.GetCurrentRoundData ();
questionPool = currentRoundData.questions;
timeRemaining = currentRoundData.timeLimitInSeconds;
playerScore = 0;
questionIndex = 0;
showQuestion ();
isRoundActive = true;
}
private void showQuestion()
{
RemoveAnswerButtons ();
QuestionData questionData = questionPool [questionIndex];
questionText.text = questionData.questionText;
for (int i = 0; i < questionData.answers.Length; i++)
{
GameObject answerButtonGameObjects = answerButtonGameObjectsPool.GetObject ();
answerButtonGameObjects.transform.SetParent (answerButtonParent);
AnswerButton answerButton = answerButtonGameObjects.GetComponent<AnswerButton> ();
answerButton.Setup (questionData.answers [i]);
}
answerButtonGameObjects.Add (answerButtonGameObjects);
}
private void RemoveAnswerButtons()
{
while (answerButtonGameObjects.Count > 0)
answerButtonObjectsPool.ReturnObejct(answerButtonGameObjects[0])
**answerButtonGameObjects**.RemoveAt(0);
}
// Update is called once per frame
void Update () {
}
}
i guess you incorrectly spelled ReturnObejct
to ReturnObject
?
Answer by Larry-Dietz · Dec 27, 2017 at 06:00 AM
As Paul said, ReturnObject is misspelled, but if it is misspelled in the answerButtonObjectsPool it might be fine. Your actual problem is the missing ; on the line BEFORE the one you highlighted.
Just put a ; at the end of that previous line, and you should be good.
Hope this helps, -Larry
answerButtonObjectsPool.ReturnObejct(answerButtonGameObjects[0])
here to be exact
Thank you, I fixed the misspelled words. After saving the script, these errors showed up.
Assets/GameController.cs(53,27): error CS1502: The best overloaded method match for System.Collections.Generic.List.Add(UnityEngine.GameObject)' has some invalid arguments Assets/GameController.cs(53,32): error CS1503: Argument
#1' cannot convert System.Collections.Generic.List' expression to type
UnityEngine.GameObject'
change
answerButtonGameObjects.Add (answerButtonGameObjects);
to
answerButtonGameObjects.Add (answerButton);
The way you have it, you are trying to add the entire list to itself, ins$$anonymous$$d of an answerButton.
-Larry
Answer by GiselleS · Dec 29, 2017 at 07:33 AM
What should I make for this error? Assets/GameController.cs(72,36): error CS1061: Type RoundData' does not contain a definition for
pointsAddedForCorrectAnswer' and no extension method pointsAddedForCorrectAnswer' of type
RoundData' could be found. Are you missing an assembly reference?
using UnityEngine; using System.Collections; using UnityEngine.UI; using UnityEngine.SceneManagement; using System.Collections.Generic;
public class GameController : MonoBehaviour {
public Text questionDisplayText;
public Text scoreDisplayText;
public SimpleObjectPool answerButtonGameObjectsPool;
public Transform answerButtonParent;
public GameObject questionDisplay;
public GameObject roundEndDisplay;
private DataController dataController;
private RoundData currentRoundData;
private QuestionData[] questionPool;
private bool isRoundActive;
private float timeRemaining;
private int questionIndex;
private int playerScore;
private List<GameObject> answerButtonGameObjects = new List<GameObject>();
// Use this for initialization
void Start ()
{
dataController = FindObjectOfType<DataController> ();
currentRoundData = dataController.GetCurrentRoundData ();
questionPool = currentRoundData.questions;
timeRemaining = currentRoundData.timeLimitInSeconds;
playerScore = 0;
questionIndex = 0;
showQuestion ();
isRoundActive = true;
}
private void showQuestion()
{
RemoveAnswerButtons ();
QuestionData questionData = questionPool [questionIndex];
questionDisplayText.text = questionData.questionText;
for (int i = 0; i < questionData.answers.Length; i++)
{
GameObject answerButtonGameObjects = answerButtonGameObjectsPool.GetObject ();
answerButtonGameObjects.transform.SetParent (answerButtonParent);
AnswerButton answerButton = answerButtonGameObjects.GetComponent<AnswerButton> ();
answerButton.Setup (questionData.answers [i]);
}
}
private void RemoveAnswerButtons()
{
while (answerButtonGameObjects.Count > 0)
answerButtonGameObjectsPool.ReturnObject (answerButtonGameObjects [0]);
answerButtonGameObjects.RemoveAt(0);
}
public void AnswerButtonClicked(bool isCorrect)
{
if (isCorrect)
{
**playerScore += currentRoundData.pointsAddedForCorrectAnswer;**
scoreDisplayText.text = "Score: " + playerScore.ToString ();
}
if (questionPool.Length > questionIndex + 1) {
questionIndex++;
showQuestion ();
}
else
{
EndRound ();
}
}
public void EndRound()
{
isRoundActive = false;
questionDisplay.SetActive (false);
roundEndDisplay.SetActive (true);
}
// Update is called once per frame
void Update () {
}
}
Wheres the script/function for your currentRoundData
because its saying the no extension method
Your answer
Follow this Question
Related Questions
C# unexpected symbol error 1 Answer
Parser Error - Unexpected symbol 2 Answers
Error CS1525: Unexpected symbol 'void' 1 Answer
Unexpected symbol `object' in class, struct, or interface member declaration. 1 Answer
Unexpected Symbol 'void' 1 Answer