Question by
MidnightDragonT · Jan 07, 2016 at 10:11 PM ·
c#collision detectiongameobjectstagscounter
How to correctly count number of objects?
I'm using a code to give me a number of players left in the game, multiple characters one player, but each time I get to the first level it tells me FindGameObjectsWithTag can only be called from the main thread. Here's the code I am using for it
using UnityEngine;
using System.Collections;
using MadLevelManager;
public class levelControl : MonoBehaviour {
private int rescued;
int player = GameObject.FindGameObjectsWithTag("Player").Length;
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
if (player == 0)
{
if (rescued == 3) {
MadLevelProfile.SetLevelBoolean (MadLevel.currentLevelName, "star_1", true);
MadLevelProfile.SetLevelBoolean (MadLevel.currentLevelName, "star_2", true);
MadLevelProfile.SetLevelBoolean (MadLevel.currentLevelName, "star_3", true);
MadLevelProfile.SetCompleted (MadLevel.currentLevelName, true);
} else if (rescued == 2) {
MadLevelProfile.SetLevelBoolean (MadLevel.currentLevelName, "star_1", true);
MadLevelProfile.SetLevelBoolean (MadLevel.currentLevelName, "star_2", true);
MadLevelProfile.SetCompleted (MadLevel.currentLevelName, true);
} else if (rescued == 1) {
MadLevelProfile.SetLevelBoolean (MadLevel.currentLevelName, "star_1", true);
MadLevelProfile.SetCompleted (MadLevel.currentLevelName, true);
}
MadLevel.LoadLevelByName ("Game Info");
}
}
void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "Player")
{
Destroy (other.gameObject);
rescued = rescued + 1;
}
}
}
Comment
Best Answer
Answer by corn · Jan 07, 2016 at 11:50 PM
The problem is int player = GameObject.FindGameObjectsWithTag("Player").Length;
. This can only be done inside a method, not while declaring a class attribute. You just need to do it in Start.
public class levelControl : MonoBehaviour {
private int rescued;
int player;
void Start ()
{
player = GameObject.FindGameObjectsWithTag("Player").Length;
}
...
}
Answer by MidnightDragonT · Jan 08, 2016 at 12:06 AM
Thank you so much, I thought maybe the player variable was incorrect completely.