Return Enemy To Start Position

I have a basic script for an enemy to chase a player when the player gets near him. When the player "escapes" the enemy I would like the enemy to return to it's starting position.

I am having a little trouble storing the initial enemy starting position and getting the enemy to return there. The enemy successfully follows the player and stops following when the player gets too far away. But when the enemy is supposed to return to his start position I get an error.

Here is the relevant code (the game is top down view):

var myTransform : Transform; //current transform data of this object
private var startPosition;

function Start()
     startPosition = transform.position; //store the start position

function ReturnToPosition()
        //rotate to look at the start position
        myTransform.rotation = Quaternion.Slerp(myTransform.rotation,
        Quaternion.LookRotation(startPosition.position - myTransform.position),rotationSpeed*Time.deltaTime);

        //move back to start position
        myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;

I have ommitted any code that isn't relevant. I also did a debug to check that ReturnPosition() was being run and it is.

The error I get is:

MissingFieldException: Field 'UnityEngine.Vector3.position' not found.

Thanks for taking a look.

Looks like the error comes from this line :

 startPosition = transform.position; //store the start position

Because you're storing your startPosition variable as a Vector3 (transform.position) and then later you're referencing it as startPosition.position. That means what you're really calling is transform.position.position.

I would change your startPosition variable so its declared as something, so do

private var startPosition : Vector3;

then use your startPosition = transform.position

And then in the code, instead of using startPosition.position, just do startPosition.

should do the trick, and cut down some processing time by declaring the variable as an actual type.