Hi all,

I am working on converting so C# code to Unityscript and have found a problem that i am having problem solving.

The C# is:

```
activePiece.transform.position = PiecePosition((Vector2)piecePositions[activePiece.name]);
```

And as far as i have gotten in the conversion to unityscript is:

```
activePiece.transform.position = PiecePosition(piecePositions[activePiece.name]);
```

I had to removed the Vector2 because it kept coming up with an error and would not let me test the game.

Without the Vector2 i can run the game, but as soon as i click on a puzzle piece i get the following error.

```
InvalidCastException: Cannot cast from source type to destination type.
JigsawPuzzle.Update () (at Assets/Scripts/JigsawPuzzle.js:324)
DemoJigsawPuzzle.Update () (at Assets/Scripts/DemoJigsawPuzzle.js:41)
```

The error is being called on the line 324 which is the lie of code above that i (tried to) convert, problem is i am not sure how to format the code so that i can make it work with the Vector2 all combinations that i have tried have led to errors.

A small breakdown of the code for you.

activePiece is a gameobject.

PiecePosition is a function.

piecePositions is a Hashtable.

Any help would be greatly appreciated.

Thanks.

-EDIT-

C#:

```
// calculate right position for a x,y positioned piece on puzzle
private Vector3 PiecePosition(Vector3 pos)
{
float dX = transform.localScale.x / size.x;
float dY = transform.localScale.y / size.y;
// determine the position related x/y vector for this piece
Vector3 positionVector =
((((transform.localScale.x / 2) * -1) + (dX * (pos.x - 1))+ (dX * (spacing/2))) * transform.right * -1) +
(((transform.localScale.y / 2)) - (dY * (pos.y - 1)) - (dY * (spacing/2))) * transform.up;
// set piece position to its right spot on the puzzle
return transform.position +
transform.forward * ((transform.localScale.z / 2) + 0.001f) +
positionVector;
}
```

And what i converted it to in unityscript:

```
//Calculate right position for a x.y positioned piece on puzzle.
function PiecePosition(pos : Vector3) : Vector3
{
var dX : float = transform.localScale.x / size.x;
var dY : float = transform.localScale.y / size.y;
//Determine the position related x/y vector for this piece.
var positionVector : Vector3 = ((((transform.localScale.x / 2) * -1) + (dX * (pos.x - 1)) + (dX * (spacing / 2))) * transform.right * -1) + (((transform.localScale.y / 2)) - (dY * (pos.y - 1)) - (dY * (spacing / 2))) * transform.up;
//Set piece position to its right spot on the puzzle.
return transform.position + transform.forward * ((transform.localScale.z / 2) + 0.001) + positionVector;
}
```

-EDIT2-

Ohh wait you wanted piecePositions.

This is the Hashtable.

```
private var piecePositions = new Hashtable();
```