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 *);*
-
}*
-
answerButtonGameObjects.Add (answerButtonGameObjects);*
-
}*
-
private void RemoveAnswerButtons()*
-
{*
-
while (answerButtonGameObjects.Count > 0)*
-
answerButtonObjectsPool.ReturnObejct(answerButtonGameObjects[0])*
_ answerButtonGameObjects.RemoveAt(0);_
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
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’
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 *);*
-
}*
-
}*
-
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 () {*
-
}*
}