- Home /
Question by
ryanle1789 · Apr 13, 2019 at 05:40 AM ·
scripting problemtextscripting beginner
How would I script text to pop up?
How would I make text appear using code by implementing it into make project's script? I want it to say Correct or wrong depending on the situation, can someone help me? Here is my code (it is for a quiz game for a project)
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine.SceneManagement;
public class GameManager : MonoBehaviour {
public Question[] questions;
private static List<Question> unansweredQuestions;
private Question currentQuestion;
[SerializeField]
private Text factText;
[SerializeField]
private Text trueAnswerText;
[SerializeField]
private Text falseAnswerText;
[SerializeField]
private Animator animator;
[SerializeField]
private float timeBetweenQuestions = 5f;
public float speed = 5f;
void Start()
{
if (unansweredQuestions == null || unansweredQuestions.Count == 0)
{
unansweredQuestions = questions.ToList<Question>();
}
SetCurrentQuestion();
}
void SetCurrentQuestion()
{
int randomQuestionIndex = Random.Range(0, unansweredQuestions.Count);
currentQuestion = unansweredQuestions[randomQuestionIndex];
factText.text = currentQuestion.fact;
if (currentQuestion.isTrue)
{
trueAnswerText.text = "Correct!";
falseAnswerText.text = "False!";
}
else
{
trueAnswerText.text = "Wrong!";
falseAnswerText.text = "Correct!";
}
}
IEnumerator TransitionToNextQuestion()
{
unansweredQuestions.Remove(currentQuestion);
yield return new WaitForSeconds(timeBetweenQuestions);
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
public void UserSelectTrue ()
{
animator.SetTrigger("True");
if (currentQuestion.isTrue)
{
Debug.Log("Correct");
} else
{
Debug.Log("Wrong");
}
transform.Translate(speed * Time.deltaTime, 0, 0);
StartCoroutine(TransitionToNextQuestion());
}
public void UserSelectFalse ()
{
animator.SetTrigger("False");
if (!currentQuestion.isTrue)
{
Debug.Log("Correct");
}else
{
Debug.Log("Wrong");
}
transform.Translate(-speed * Time.deltaTime, 0, 0);
StartCoroutine(TransitionToNextQuestion());
}
}
Comment
Answer by danielg97 · Mar 18, 2020 at 04:33 PM
@ryanle1789 SetActive will disable and enable gameobjects in the hierarchy
yourText.SetActive(true); // Will set a disabled gameobject to active, making it visible
yourText.SetActive(false); // Will set an enabled gameobject to inactive, making it invisible
If you just want to delete a gameobject, just do
Destroy(gameObject);
Your answer
Follow this Question
Related Questions
Visual Scripting: No TextMeshPro Units 0 Answers
Standard Asset FP Controller not moving 0 Answers
Character not jumping high enough 1 Answer
Help with script 1 Answer
How to double spirte/gameobject/prefab and control the result on those items? 0 Answers