Trying to make a enemy attack my player but only deal 1damage per hit

I am trying to make a enemy attack my player but only deal 1damage per hit.
But everytime that the attack does hit my player it destroys him this is for a 2d side scroller game.

My Enemy2D.cs
public class Enemy2D : MonoBehaviour {
//Reference to our GameManager Script
public GameManager gameManager;

// Enemies Starting/End Positions
float startingPos;
float endPos;

// Units Enemy Moves Right
public float unitsToMove = 5;
//Enemies Movement Speed
public int moveSpeed = 2;
// Enemy Moving Right or Left
bool moveRight = true;

// Enemies Health
int enemyHealth = 1;
// Types of Enemies
public bool basicEnemy;
public bool advancedEnemy;
public bool BossEnemy;

void Awake()
{
// On Load Gets Enemy Starting X
startingPos = transform.position.x;
// ON LOAD GETS OUR ENEMIES END POS BY ADDING THE UNITS TO THE STARTING POS
endPos = startingPos + unitsToMove;

if (basicEnemy) {
enemyHealth = 3;
}
if (advancedEnemy) {
enemyHealth = 6;
}
if (BossEnemy) {
enemyHealth = 25;
}
}

void Update()
{
if (moveRight){
rigidbody.position += Vector3.right * moveSpeed * Time.deltaTime;
}

if (rigidbody.position.x >= endPos){
moveRight = false;

}
if (!moveRight){
rigidbody.position -= Vector3.right * moveSpeed * Time.deltaTime;
}

if (rigidbody.position.x <= startingPos){
moveRight = true;
}
}

// Enemy Damage Value
public int damageVaule = 1;

void OnTriggerEnter(Collider col){
if (col.gameObject.tag == “Player”) {
gameManager.SendMessage (“PlayerDamaged”, damageVaule, SendMessageOptions.DontRequireReceiver);
gameManager.controller2d.SendMessage (“TakenDamage”, SendMessageOptions.DontRequireReceiver);
}
}

// Emey Taking Damage
void EnemyDamaged(int damage){
if (enemyHealth > 0){
enemyHealth -= damage;
}

if (enemyHealth <= 0){
enemyHealth = 0;
Destroy (gameObject);
gameManager.curEXP += 10;
}
}

//Shows That we have takenDamage
float takenDamage = 0.2f;

public IEnumerator TakenDamage(){
renderer.enabled = false;
yield return new WaitForSeconds(takenDamage);
renderer.enabled = true ;
yield return new WaitForSeconds(takenDamage);
renderer.enabled = false;
yield return new WaitForSeconds(takenDamage);
renderer.enabled = true;
yield return new WaitForSeconds(takenDamage);
renderer.enabled = false;
yield return new WaitForSeconds(takenDamage);
renderer.enabled = true;
yield return new WaitForSeconds(takenDamage);
}
}

Shooting Script:
public class BossShooting : MonoBehaviour {
//Reference to our GameManager Script
public GameManager gameManager;

public int damageVaule = 1;

public Rigidbody bulletPrefab;
float coolDown;

public float xValue = -.75f;

// Update is called once per frame
void Update()
{
if (Time.time >= coolDown)
{
Fire();
}
}

void Fire()
{
// This INSTANTIATES BULLET FROM THE ENEMY POSITION
//Rigidbody bPrefb = Instantiate(bulletPrefab;transform.position,Quaternion.identity) as Rigidbody;

// INSTANTIATE FROM PLAYER + X POSITION
Rigidbody bPrefab = Instantiate(bulletPrefab, new Vector3(transform.position.x + xValue, transform.position.y, transform.position.z), Quaternion.identity) as Rigidbody;

bPrefab.rigidbody.AddForce (Vector3.left * 300);

coolDown = Time.time + Random.Range (3, 6);

}

}

my Bullet Script:
public class EnemyBullet : MonoBehaviour {

GameManager gameManager;

public int damageVaule = 1;

void OnBecameInvisible()
{
Destroy (gameObject);
}

void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == “Player”)
{
Debug.Log (“we Have Hit The Player”);

// The Bullet Destroy our Player
Destroy (other.gameObject);

// Destroy our bullet
Destroy(gameObject);

}
}
void FixedUpdate(){
Destroy (gameObject, .5f);
}
}

Also it does say that BossBullet.damageValue is assigned but never used…

my Bullet Script:
public class EnemyBullet : MonoBehaviour {

GameManager gameManager;

public int damageVaule = 1;

void OnBecameInvisible()
{
Destroy (gameObject);
}

void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Player")
{
Debug.Log ("we Have Hit The Player");

// The Bullet Destroy our Player
Destroy (other.gameObject);

// Destroy our bullet
Destroy(gameObject);

if bullet(clone) hit player, then he will be destroyed. May be you should change bullet prefabs line “Destroy (other.gameObject);”, whith code, that make 1 damage. Something like: gameManager.SendMessage (“PlayerDamaged”, damageVaule, SendMessageOptions.DontRequireReceiver);

I have done that an know im getting while the bullet passes through my player and im not taking damage

NullReferenceException: Object reference not set to an instance of an object
EnemyBullet.OnTriggerEnter (UnityEngine.Collider other) (at Assets/PYP Game/Script/EnemyBullet.cs:22)

yes, the prefab need reference to GameObject where the Gamemanager script is. I cannot say, what exatly to do. I am newbe at 1st, on 2d i cannot see where Gamemanager is.

you should say your bulletPrefab, where Gamemanager is. Something like:

void Start () {

gameObj= Gameobject.Find (“NameofGameobject_with_GamemanagerScript”);
gameManager = gameObj.GameManager;

}

and then your BulletPrefab can work with gameManager. And your script will be:

    my Bullet Script:
    public class EnemyBullet : MonoBehaviour {

    GameManager gameManager;

    public int damageVaule = 1;

GameObject gameObj;



void Start () {

gameObj = Gameobject.Find ("NameofGameobject_with_GamemanagerScript");
gameManager  = gameObj.GameManager;

}

    void OnBecameInvisible()
    {
    Destroy (gameObject);
    }

    void OnTriggerEnter(Collider other)
    {
    if (other.gameObject.tag == "Player")
    {
    Debug.Log ("we Have Hit The Player");

    // The Bullet Destroy our Player
    //Destroy (other.gameObject);

gameManager.SendMessage ("PlayerDamaged", damageVaule, SendMessageOptions.DontRequireReceiver);

    // Destroy our bullet
    Destroy(gameObject);
}
}

but you should insert the name of gameobject.