- Home /
Setting up Jump trigger
Hi, i have been setting up a jump trigger in my gamemanager script for my character to jump when i answer correctly a T/F question. but i don't know how to set a reference for the jump trigger on the character control script
//GameManagerScript
using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Linq; using UnityEngine.UI; using UnityEngine.SceneManagement;
public class GameManager1 : MonoBehaviour { public bool answer = false; public Question[] questions; private static List unansweredQuestions;
public Question currentQuestion;
[SerializeField]
private Text questionText;
[SerializeField]
private Text trueAnswerText;
[SerializeField]
private Text falseAnswerText;
[SerializeField]
Animator animator;
[SerializeField]
Animator anim;
[SerializeField]
private float timeBetweenQuestions = 1f;
void Start()
{
answer = false;
if (unansweredQuestions == null || unansweredQuestions.Count == 0)
{
unansweredQuestions = questions.ToList<Question>();
}
SetCurrentQuestion();
}
void SetCurrentQuestion()
{
int randomQuestionIndex = Random.Range(0, unansweredQuestions.Count);
currentQuestion = unansweredQuestions[randomQuestionIndex];
questionText.text = currentQuestion.question;
if(currentQuestion.isTrue)
{
trueAnswerText.text = "Correct";
falseAnswerText.text = "Wrong";
}
else
{
trueAnswerText.text = "Wrong";
falseAnswerText.text = "Correct";
}
}
IEnumerator TransitionToNextQuestion ()
{
unansweredQuestions.Remove(currentQuestion);
yield return new WaitForSeconds(timeBetweenQuestions);
SceneManager.LoadScene("Quiz");
}
public void UserSelectTrue ()
{
animator.SetTrigger("True");
if (currentQuestion.isTrue)
{
Debug.Log("Correct!");
answer = true;
}
else
{
Debug.Log("Wrong!");
answer = false;
}
StartCoroutine(TransitionToNextQuestion());
}
public void UserSelectFalse()
{
animator.SetTrigger("False");
if (!currentQuestion.isTrue)
{
Debug.Log("Correct!");
answer = true;
}
else
{
Debug.Log("Wrong!");
answer = false;
}
StartCoroutine(TransitionToNextQuestion());
}
void Update()
{
if(answer == true)
{
anim.SetTrigger("Jump");
}
}
}
. //Player Control Script using System.Collections; using System.Collections.Generic; using UnityEngine;
public class PlayerControlls : MonoBehaviour {
public GameManager1 GM1;
public float jumpForce;
//set a trigger for jumping//
private Rigidbody2D theRB;
public Transform groundCheckPoint;
public float groundCheckRadius;
public LayerMask whatIsGround;
public bool isGrounded;
// Use this for initialization
void Start () {
theRB = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update () {
isGrounded = Physics2D.OverlapCircle(groundCheckPoint.position, groundCheckRadius, whatIsGround);
if (GM1.answer == true)// This action should activate when Answer of Quiz is correct
{
theRB.velocity = new Vector2(theRB.velocity.x, jumpForce);
}
}
}
Your answer
Follow this Question
Related Questions
How to get a variable from a triggers script. 0 Answers
How to play animations on entering a trigger and pressing a button? (2D) 1 Answer
OnTriggerEnter Script only working on duplicated object 1 Answer
OnTriggerEnter2D crashing editor 0 Answers
Efficiently changing other object's variables via triggers? 1 Answer