Please help get my code to work...compiler errors

New to unity and I cannot for the life of me figure out what the problem is in this code. I’m working from a book (Unity in Action) and even after what I thought was copying line for line, I still get errors.

using UnityEngine;
using System.Collections;
public class RayShooter : MonoBehaviour {
	private Camera _camera;
	void Start() {
		_camera = GetComponent<Camera>();
		Cursor.lockState = CursorLockMode.Locked;
		Cursor.visible = false;
	void OnGUI() {
		int size = 12;
		float posX = _camera.pixelWidth/2 - size/4;
		float posY = _camera.pixelHeight/2 - size/2;
		GUI.Label(new Rect(posX, posY, size, size), "*");
	void Update() {
		if (Input.GetMouseButtonDown(0)) {
			Vector3 point = new Vector3(_camera.pixelWidth/2, _camera.pixelHeight/2, 0);
			Ray ray = _camera.ScreenPointToRay(point);
			RaycastHit hit;
			if (Physics.Raycast(ray, out hit)) {
				GameObject hitObject = hit.transform.gameObject;
				ReactiveTarget target = hitObject.GetComponent<ReactiveTarget>();
				if (target != null) {
				} else {
		private IEnumerator SphereIndicator(Vector3 pos) {
			GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
			sphere.transform.position = pos;
			yield return new WaitForSeconds(1);

Apparently there is an error with ‘private’ being unexpected and a ‘(’ somewhere. Please help, I’ve been at this forever…

You are missing a ‘)’ from the end of your code, add one and it will compile.

Your SphereIndicator method is being declared inside your Update method as your update method is missing a closing brace ‘}’

If you add the closing brace before the deceleration of the SphereIndicator then your braces will match, and you should be ok.

It’s always a good idea to check your braces are balanced when you get errors related to unexpected locations. A lot of IDE’s like Visual studio and MonoDevelop will actually highlight matching braces if you select one which can be really handy for checking them.