Los modificadores de acceso determinan desde dónde se puede acceder a una variable, método o clase.

public

Puede accederse desde otras clases.

public int vida = 100;

public void Atacar()
{
}

private

Solo puede accederse desde la misma clase.

private int vida = 100;

En miembros de una clase, si no escribimos un modificador normalmente se considera private.

int vida = 100;

protected

Puede accederse desde la misma clase y desde clases que heredan de ella.

public class Enemigo
{
    protected int vida = 100;
}

public class Zombie : Enemigo
{
    void MostrarVida()
    {
        Debug.Log(vida);
    }
}

internal

Permite acceso desde el mismo ensamblado.

internal class Sistema
{
}

Para código básico de Unity vas a usar mucho más public, private y protected.