HowTo pass variable to OnGUI

I have a huge problem which i can solve since 4 days now. I have to say that im very new to unity and C+

My Problem is that i can not access a variable set on a public function on the same script. They are like 2 different values for the same variable.

I have 2 scripts. HealthBarMonster calls the ShowScore script and passes the score value when a GameObject gets destroyed. But i can not access the variable set in CalculateScore with my onGUI function. What i am doing wrong, thank you for any help i get

HealthBarMonster

using UnityEngine;
using System.Collections;

public class HealthBarMonster : MonoBehaviour {

	public float MaxHhealth = 100f;
	public float CurrentHealth = 0f;
	public int Score = 10;
	public GameObject healthBar;
	public Tower Tower;
	public ShowScore ShowScore;

	// Use this for initialization
	void Start () {
		CurrentHealth = MaxHhealth;

	}
	
	public void decreasehealth(float dmg){
		CurrentHealth -= dmg;
		float calc_health = CurrentHealth / MaxHhealth;
		SetHealthBar (calc_health);
	}

	public void SetHealthBar(float health){
		healthBar.transform.localScale = new Vector3 (Mathf.Clamp (health, 0f, 1f), healthBar.transform.localScale.y, healthBar.transform.localScale.z);
		if (CurrentHealth <= 0) {
			Tower.DeathReport ();
			ShowScore.CalculateScore (Score);
			Destroy (gameObject);
		}
	}
}

ShowScore

using UnityEngine;
using System.Collections;

public class ShowScore : MonoBehaviour {

	private int ScoreCount = 0;
	private int ScoreCountGUI = 0;

	public void CalculateScore (int score){
		if (score != 0) {
			ScoreCount += score;
		} else {
			ScoreCountGUI = ScoreCount;
		}
	}
		
	public void OnGUI()
	{
		CalculateScore (0);
		int w = Screen.width, h = Screen.height;
		GUIStyle style = new GUIStyle();
		Rect rect = new Rect(0, 10, w, h * 2 / 100);
		style.alignment = TextAnchor.UpperLeft;
		style.fontSize = h * 2 / 100;
		style.normal.textColor = new Color (0.0f, 0.0f, 0.5f, 1.0f);
		GUI.Label(rect, "Score: "+ScoreCountGUI, style);
	}
}

I know the ScoreCount variable in the if condition “!= 0” goes up right. but in the else condition it is not the same value

Wow i have found an answer on the internet after the 10 google side. the keyword was static
here my change code, so if some one has the same problem,

using UnityEngine;
using System.Collections;

public class ShowScore : MonoBehaviour {

	static int ScoreCount;

	public void CalculateScore (int ScoreReport){
		ScoreCount += ScoreReport;
	}

		
	public void OnGUI()
	{
		int w = Screen.width, h = Screen.height;
		GUIStyle style = new GUIStyle();
		Rect rect = new Rect(0, 10, w, h * 2 / 100);
		style.alignment = TextAnchor.UpperLeft;
		style.fontSize = h * 2 / 100;
		style.normal.textColor = new Color (0.0f, 0.0f, 0.5f, 1.0f);
		GUI.Label(rect, "Score: "+ScoreCount, style);
	}
}