- Home /
Trying to call OnTriggerEnter2D once but being called multiple times...
I'm new to Unity and I'm trying to get OnTriggerEnter2D(Collider2D col) to work just once when triggered to add to a variable. But when triggered it keep on adding constantly and not stopping when it is not being triggered anymore. Any help would be appreciated!!
This is what what I did for the trigger to be called
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
public void OnTriggerEnter2D(Collider2D col)
{
targetHit ++;
Resetting.Reset();
}
}
And this is where its going
public MonsterTarget monTarget;
public Text scoreText;
public Text highScoreText;
public float scoreCount;
public float highScoreCount;
public bool scoreIncreasing;
// Use this for initialization
void Start () {
if(PlayerPrefs.HasKey("HighScore"))
{
highScoreCount = PlayerPrefs.GetFloat("HighScore");
}
}
// Update is called once per frame
void Update () {
if (scoreIncreasing)
{
scoreCount += monTarget.targetHit;//RIGHT HERE
}
if (scoreCount > highScoreCount)
{
highScoreCount = scoreCount;
PlayerPrefs.SetFloat("HighScore", highScoreCount);
}
scoreText.text = "Score: " + Mathf.Round(scoreCount);
highScoreText.text = "High Score: " + Mathf.Round(highScoreCount);
}
}
Answer by _creatio_ · Dec 14, 2015 at 07:39 PM
Once the condition in is met
if (scoreIncreasing)
{
scoreCount += monTarget.targetHit;//RIGHT HERE
}
you will see constantly increasing score, on each frame, as you never seem to reset the condition.
To make what you want, you probably need to make something like this:
if (scoreIncreasing)
{
scoreCount += monTarget.targetHit;
scoreIncreasing = false; //RIGHT HERE
}
Hope that helps
Follow this Question
Related Questions
Trigger only one collider? 1 Answer
Collider not working... 0 Answers
Can't click gameobject when over another trigger? 1 Answer
GameObject going into terrain. 0 Answers
Trigger to some, Collider to others 1 Answer