Camera relative starfield - problems with Instantiate

I’m making a 2D space exploration game. I want to have the stars in the scene to move with the camera, to create an infinitely scrolling starfield within the scene. I’m hoping this will be more efficient to run than placing stars across the entire scene. I’m working on a script that moves the stars in the opposite direction to the player, then destroys it if it gets too far away and replaces it with another at the other end.

I’m part way through now, but when trying to test it comes up with the error “BCE0023: No appropriate version of ‘UnityEngine.Object.Instantiate’ for the argument list ‘(UnityEngine.Transform, UnityEngine.Vector3)’ was found”

I don’t know what I’m doing wrong with the instantiate as I’m sure doing the same as I did in a tutorial that worked. It hasn’t given me the option to assign the “starPref” variable in the inspector, so maybe it’s something to do with that?

var cam : GameObject;
var zeroPoint : GameObject;

var TL : GameObject;
var TM : GameObject;
var TR : GameObject;

var ML : GameObject;
var MM : GameObject;
var MR : GameObject;

var BL : GameObject;
var BM : GameObject;
var BR : GameObject;

var xSpeed : float;
var ySpeed : float;

var starPref : Transform;

function Start () {

cam = GameObject.FindGameObjectWithTag("MainCamera");
zeroPoint = GameObject.FindGameObjectWithTag("zero");

TL = GameObject.FindGameObjectWithTag("11");
TM = GameObject.FindGameObjectWithTag("12");
TR = GameObject.FindGameObjectWithTag("13");

ML = GameObject.FindGameObjectWithTag("21");
MM = GameObject.FindGameObjectWithTag("22");
MR = GameObject.FindGameObjectWithTag("23");

BL = GameObject.FindGameObjectWithTag("21");
BM = GameObject.FindGameObjectWithTag("22");
BR = GameObject.FindGameObjectWithTag("23");


function Update () {

xSpeed = (-cam.rigidbody.velocity.x)/60;
ySpeed = (-cam.rigidbody.velocity.y)/60;

transform.Translate (Vector3(xSpeed,ySpeed,0));



function Infinite (){

if (transform.position.y < zeroPoint.transform.position.y-16)
			Instantiate(starPref, Vector3(TL.transform.position.x, TL.transform.position.y, TL.transform.position.z));
			Instantiate(starPref, Vector3(TM.transform.position.x, TM.transform.position.y, TM.transform.position.z));
			Instantiate(starPref, Vector3(TR.transform.position.x, TR.transform.position.y, TR.transform.position.z));


Solved the issue - Where it says

Instantiate(starPref, Vector3(TL.transform.position.x, TL.transform.position.y, TL.transform.position.z));

it now reads

Instantiate(starPref, TL.transform.position, cam.transform.rotation);

I was just putting the wrong information in, and too many brackets!