.facingRight inaccessable due to protection level

I just started playing with Unity like 3 days ago. I’ve watched both the tutorials on the site and created my own player control script. I don’t know how to do guns or projectiles or even melee so I tried to copy and paste the gun script from the demo provided. I tried to tweak it to reference my script but I keep getting this

Assets/obama/scripts/Gun.cs(32,39): error CS0122: `obamacontroller.facingRight’ is inaccessible due to its protection level

I also don’t understand the (x,x). I realize that the 32 is the line but what’s the second digit mean?

I’ve also added an older screenshot of my ‘game’…

Here are my two scripts.
This is the player control.

using UnityEngine;
using System.Collections;

public class obamacontroller : MonoBehaviour
{
	public float maxSpeed = 10f;
	bool facingRight = true;

	Animator anim;
	

	bool grounded = false;
	public Transform groundCheck;
	float groundRadius = 0.2f;
	public LayerMask whatIsGround;
	public float jumpForce = 700f;

	bool doubleJump = false;



	void Start () 
	{
		anim = GetComponent<Animator> ();
	}

	void FixedUpdate () 
	{
		grounded = Physics2D.OverlapCircle (groundCheck.position, groundRadius, whatIsGround);
		anim.SetBool ("Ground", grounded);

		if (grounded)
						doubleJump = false;

		anim.SetFloat ("vSpeed", rigidbody2D.velocity.y);




		float move = Input.GetAxis ("Horizontal");

		anim.SetFloat ("Speed", Mathf.Abs(move));

		rigidbody2D.velocity = new Vector2(move * maxSpeed, rigidbody2D.velocity.y);

		if(move > 0 &&!facingRight)
						Flip ();
				else if(move < 0 && facingRight)
						Flip ();
	}

	void Update()
	{
		
				if (Input.GetKeyDown ("h")) {
						punch = true;
				}
			
						if ((grounded || !doubleJump) && Input.GetKeyDown (KeyCode.Space)) {
								anim.SetBool ("Ground", false);
								rigidbody2D.AddForce (new Vector2 (0, jumpForce));

								if (!doubleJump && !grounded)
										doubleJump = true;
						}
				}

	void Flip()
	{

	


		facingRight = !facingRight;
		Vector3 theScale = transform.localScale;
		theScale.x *= -1;
		transform.localScale = theScale;
	}

	}

and then the gun.cs

using UnityEngine;
using System.Collections;

public class Gun : MonoBehaviour
{
public Rigidbody2D rocket; // Prefab of the rocket.
public float speed = 20f; // The speed the rocket will fire at.

public obamacontroller playerCtrl;		// Reference to the PlayerControl script.
public Animator anim;					// Reference to the Animator component.

void Awake()
{
	// Setting up the references.
	anim = transform.root.gameObject.GetComponent<Animator>();
	playerCtrl = transform.root.GetComponent<obamacontroller>();
}

public void Update ()
{
	// If the fire button is pressed...
	if(Input.GetButtonDown("Fire1"))
	{
		// ... set the animator Shoot trigger parameter and play the audioclip.
		anim.SetTrigger("Shoot");
		audio.Play();

		// If the player is facing right...
		if(playerCtrl.facingRight)
		{
			// ... instantiate the rocket facing right and set it's velocity to the right. 
			Rigidbody2D bulletInstance = Instantiate(rocket, transform.position, Quaternion.Euler(new Vector3(0,0,0))) as Rigidbody2D;
			bulletInstance.velocity = new Vector2(speed, 0);
		}
		else
		{
			// Otherwise instantiate the rocket facing left and set it's velocity to the left.
			Rigidbody2D bulletInstance = Instantiate(rocket, transform.position, Quaternion.Euler(new Vector3(0,0,180f))) as Rigidbody2D;
			bulletInstance.velocity = new Vector2(-speed, 0);
		}
	}
}

}

If you don’t provide an access modifier to variables they will have their default access. In C# it is private, in UnityScript it is public.

facingRight is assigned its default modifier – private --, thus is inaccessible outside that class.

If you don’t know what access modifiers do, have a look at this MSDN page which explains what they do.

The 2nd digit in all the error codes is the character at which the compiler encountered the error.