if you know Javascript or Boo you should convert everything easily). Right click on the Spawner C# and select Sync MonoDevelop Project.12. A new basic C# class is created for you in the MonoDevelop (it's the code editor used by Unity3D). Write like this: using UnityEngine;using System.Collections; public class Spawner : MonoBehaviour {// the circle object to be instantiatedpublic GameObject greenCirclePrefab; //used to instanciate a new green circle object// some qty circle controls public int maxCircle = 10;public int count = 0; // Use this for initialisationvoid Start () { } // Update is called once per framevoid Update () {// instanciate a new circleif (count < maxCircle){ // maximum 10 circles same timeInstantiate(greenCirclePrefab, transform.position, transform.rotation);count++;}}} 13. Save it. Now we need add this script to some object. I choose use an existent object, like the Main Camera, instead create a new empty GameObject just to be my green circle spawner. So, drag and drop the C# Spawner from Project window to the Main Camera object at the Hierarchy window. Now you can see the c# code attached to the Main Camera as a component. In Unity all our public variables can be seeing and editable by the Inspector! Amazing! Ah! We still need to reference our Green Circle Prefab object. Just click in the circle next to "Green Circle Prefab" property and select "GreenCicrclePrefab", yes that same prefab we created before.14. Time to create the script for our green circles. Just like before, create a new C# script, name it to green circle and go to monodevelop:using UnityEngine;using System.Collections; public class CircleChain : MonoBehaviour { // for screen resolution calcs - we need convert pixels to unites positions (used in the 3D world)public Camera cam;public float screenX; // = Camera.current.ScreenToWorldPoint( new Vector3 (Screen.width, 0, 0)).x;public float screenY; // = Camera.current.ScreenToWorldPoint( new Vector3 (0, Screen.height, 0)).y; // some controllerspublic float circleSpeed = 1f; // controlls green circle speedpublic float speedX;public float speedY; // Use this for initializationvoid Start () {cam = Camera.main.GetComponent<Camera>(); // get the Main Camera instanceresetCircle(); // for Random position and direction of the green circlesgetCurrentMaxWorldScreen(); // get screen limits. I had hardcoded before but it wasn't a good solution.} // Update is called once per framevoid Update () {// update the green circle movementtransform.Translate(new Vector3(speedX, speedY, 0) * circleSpeed * Time.deltaTime); //this.gameObject.transform.position; // if the GreenCircle goes out the screen we manage to put it backif(transform.position.x > (screenX)){transform.position = new Vector3(-screenX, transform.position.y, transform.position.z);}if(transform.position.x < -screenX){transform.position = new Vector3(screenX, transform.position.y, transform.position.z);}if(transform.position.y > screenY){transform.position = new Vector3(transform.position.x, -screenY, transform.position.z);}if(transform.position.y < -screenY){transform.position = new Vector3(transform.position.x, screenY, transform.position.z);} // check if the screen bonderies changedgetCurrentMaxWorldScreen(); } // gives GreenCircle obj random position and direction.public void resetCircle(){// random degrees (360) and give back as Radiansfloat direction = Mathf.PI * Random.Range(0, 359) / 180 ;// new directions positionsspeedX = Mathf.Cos(direction);speedY = Mathf.Sin(direction);// set positions. the position Z doesn matter and I hardcoded to 10, like the value in Main Camerathis.transform.position = new Vector3(speedX, speedY, 10); //this.gameObject.transform.position; } // get our screen limitspublic void getCurrentMaxWorldScreen(){screenX = cam.ScreenToWorldPoint( newVector3 (Screen.width, 0, 0)).x;screenY = cam.ScreenToWorldPoint( new Vector3 (0,