Find Position in Array or List?

Here is my code, it’s pretty self explanatory:

var points : GameObject[];

function findposinarr(array, Val){
	for (var l = 0; l < array.length; l++){
		if (array[l] == Val){
			return l;

respawnPointNumber = findposinarr(points,pointOfRespawn); 

Where pointOfRespawn is a String with the name of a gameObject;

I get the error:

‘length’ is not a member of ‘Object’.


Because you need to use .Length.

This would have been spotted during compile time if you had used types in your function parameters.
I am not sure what unityscript uses as the default return values ( I am surprised it allows you to skip specifying a return value for all cases ), but you should look that up. Probably null.

Also, you might want to use System.Array.IndexOf ( points, pointOfRespawn) instead, it does basically the same thing.

See Array.IndexOf Method (System) | Microsoft Learn

Rereading your question. You say that pointOfRespawn was a string containing the name of the GameObject. GameObjects are not strings, so you cannot compare them and expect them to be true at any time ( it will never be ). You should compare against the name member of the GameObject if you want to do that.

You must type your variables. (array, Val) won’t work; it needs to be (array : GameObject[], val : String) (also, don’t use uppercase for variables). However you can’t compare a String to a GameObject; you’d need