How to add a component in a runtime instantiation?

Hi want to do this:

	void Start () {
		for (int i=0;i<totalToCreate;i++)
		{
			Vector3 pPosition = posicionateAvatar();
			
			GameObject gmO = new GameObject();
			gmO.name="StudentFollower";
			gmO.transform.position=pPosition;
			
			Follow follow=new Follow();
			follow.target=transform;
			gmO.AddComponent ("Follow")=follow;
		}
	}

So, for another words, I want to add the variable ‘follow’ (type Follow) to a GameObject ‘gmO’. I try many ways to do this but it isn’t work. Someone can help me pls?
At this way I have

  • error CS0131: The left-hand side of an assignment must be a variable, a property or an indexer

If I do gmO.AddComponent (follow); I have

  • error CS1502: The best overloaded method match for `UnityEngine.GameObject.AddComponent(string)’ has some invalid arguments

and

  • error CS1503: Argument #1' cannot convert FollowAluno’ expression to type `string’

Ok if I get it right, you want to add a Follow component to the newly created game object and pass the follow object you just made up before. Well, you could simply fill up the component you create:

 void Start () {
   for (int i=0;i< totalToCreate;i++)
   {
     Vector3 pPosition = posicionateAvatar();
 
     GameObject gmO = new GameObject();
     gmO.name="StudentFollower";
     gmO.transform.position=pPosition;
     Follow follow = gmO.AddComponent ("Follow")as Follow;
     follow.target=transform;
   }
}