- Home /
Triggers? How do I use them to finish a game?
I am making a racing game. When the player passes though the finish line banner (Has a box collider with isTrigger checked) I want my victory panel to appear (it would become active) I don't know how to use triggers though, and any advice would help!
My code: using System.Collections; using System.Collections.Generic; using UnityEngine;
public class FinishRace : MonoBehaviour
{
public GameObject finishScreen;
// Start is called before the first frame update
void Start()
{ finishScreen.SetActive(false);
//so basically
/*
* When the flag is touched, stop the time
* bring up the game over screen and show the time that the player got
* pause everything???
* have a button that brings over the next track
*/
}
// Update is called once per frame
void Update()
{
}
public class Finish : MonoBehaviour
{
private void OnTriggerEnter(Collider other)
{
GameObject.Find("Tocus").SendMessage("finish");
}
}
}
Answer by Krixion · Jan 28, 2020 at 04:22 AM
I would have a "Car" tag on the cars themselves and for the trigger use
private void OnTriggerEnter(Collider other)
{
if(other.CompareTag("Car"))
{
/** Your Code Here */
}
}
Collider is the parameter being sent to on trigger enter and by checking the tag of the collider that has been passed through the OnTriggerEnter. By checking if it the tag of that colliders gameobject to ensure it's a car and not a different game object. If you needed to assess the gameobject itself as well you could use other.gameobject
This would be useful for getting a component off of the gameobject that has passed through the triggerbox. There's more info on OnTriggerEnter here: https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerEnter.html