x


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. :)

more ▼

asked Jul 14 '12 at 09:28 PM

Flaxix gravatar image

Flaxix
1 1 1 3

(comments are locked)
10|3000 characters needed characters left

2 answers: sort voted first

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.

more ▼

answered Jul 14 '12 at 09:45 PM

fafase gravatar image

fafase
10.5k 9 15 40

(comments are locked)
10|3000 characters needed characters left

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?

more ▼

answered Jul 14 '12 at 09:45 PM

rutter gravatar image

rutter
5.2k 2 11

(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x5070
x1358
x821
x797
x532

asked: Jul 14 '12 at 09:28 PM

Seen: 269 times

Last Updated: Jul 14 '12 at 09:46 PM