Getting error BCE0024, while the constructor exists


I have a script inside my Project folder that defines a sphereObject (a custom object that I created). The script is inside the folder /scripts/objects and it’s name is sphereObject.js

I have another script inside the root of my project called createSpheres.js where I use the following line :

var sphereOBJ = sphereObject( x , y , letter.ToString() );

The file declaring the sphereObject contains only the following code

var x;
var y;
var letter;

function sphereObject ( x : int , y : int , letter : String ) {
    this.x = x;
    this.y = y;
    this.letter = letter;

So, when I compile the code I get the following error:

Error BCE0024: The type 'sphereObject' does not have a visible constructor that matches the argument list '(int, int, String)'. (BCE0024) (Assembly-UnityScript)

This seems kind of weird since I have declared the constructor. Any ideas?

You haven’t defined the class anywhere, plus you need to either supply the type for all variables or else supply a value so the compiler can figure out the type; you don’t want stuff like “var x;”. Unityscript files are automatically classes but only for MonoBehaviour…when you make custom classes that aren’t derived from MonoBehaviour, you have to explicitly declare the class.