- Home /
Array Problem - Error Code BCE0022
Hai people. I'm making a game in Unity (what else would you be making) and I don't quite understand the error. Or at least how to fix it. So, does anyone of you generous little people know the solution?
Here's my/the code I wrote/written (I like using slashes, they look awesome).
// Use this for initialization
function Start () {
GameObjectDisappear = GameObject.FindGameObjectsWithTag ("DisappearingObject001");
arr.Push("GameObjectDisappear");
}
var GameObjectDisappear : GameObject ;
var arr = new Array ();
// Update is called once per frame
function Update () {
}
function OnTriggerEnter (other : Collider) {
Destroy (GameObjectDisappear) ;
}
If you find the solution, you get a telepathically taste-transmitted cookie (don't ask how I got your brain's phone number). And a smile. :)
Answer by fafase · Jul 14, 2012 at 09:45 PM
First, you shuld place the declaration at the top of your script, it is easier to read.
I would think your error comes from the fact that GameObjectDisappear is an array but you do not provide any index in your destroy function.
Try with:
var GameObjectDisappear:GameObject[];
//var GameObjectDisappear = new List.<GameObject>(); //Also possible for use
// Use this for initialization
function Start () {
GameObjectDisappear = GameObject.FindGameObjectsWithTag ("DisappearingObject001");
}
function OnTriggerEnter (other : Collider) {
for (var go : GameObject in GameObjectDisappear) {
Destroy(go);
}
}
This will go through the array and Destroy all objects.
Answer by rutter · Jul 14, 2012 at 09:45 PM
You're giving the compiler incompatible data types.
You declare a variable GameObjectDisappear
of type GameObject
, and try to assign the return value from GameObject.FindGameObjectsWithTag()
, which returns type GameObject[]
.
If you're not sure why this is a crucial distinction, now is a good time to read up on arrays -- Google around a bit, you should be able to find plenty of tutorials. In a nutshell, you are trying to assign a group of values to a variable which can only contain one value. The compiler is trying to tell you that it can't do that.
If you're only looking for the one object, you might use FindGameObjectWithTag()
, which will return only the first matching GameObject.
Past that, I'm not sure what you're trying to do with this arr
variable. It doesn't appear to be used?
Your answer
Follow this Question
Related Questions
Array Problem - Error Code BCE0022 1 Answer
How to find the opposite variables list? 1 Answer
Picking a Random Order for Levers 1 Answer
How to get a value from an array within another script. 1 Answer
Script static var, problems 0 Answers