So I have a script that works perfectly, except for the high score. While I triple checked the code, and made sure the right textmesh was assigned in the inspector, I can’t seem to find out why it doesn’t show the high score in the game. Here is the script, any help would be greatly appreciated, thanks
private var m_TimerResetOffset = 0;
private var hit : RaycastHit;
private var ray : Ray;//ray we create when we touch the screen
var nextFireTime : float;
var bulletHole : GameObject;
var score = 0;
var textMesh : TextMesh;
var textMesh1 : TextMesh;
var newhighscore : TextMesh;
var textMesh10 : GameObject;
var words : GameObject;
var endTime : float;
var perfectlight : GameObject;
var firelight : GameObject;
var flare : GameObject;
var gun : GameObject;
var lineRenderer : LineRenderer;
var c1 : Color = Color.red;
var c2 : Color = Color.white;
var fifteensecondsleft : GameObject;
var onesecondsleft : GameObject;
var targets : GameObject;
var reset : GameObject;
function Start () {
newhighscore.text = "High Score: " + PlayerPrefs.GetInt("High Score").ToString();
Screen.showCursor = false;
endTime = Time.time + 61;
lineRenderer = gameObject.AddComponent(LineRenderer);
lineRenderer.material = new Material (Shader.Find("Particles/Additive"));
lineRenderer.SetColors(c1, c2);
lineRenderer.SetWidth(0.2,0.2);
lineRenderer.SetVertexCount(2);
}
function Update () {
var guiTime = Time.time - m_TimerResetOffset;
var timeLeft : int = endTime - guiTime;
if (timeLeft < 1){
if(score > PlayerPrefs.GetInt("High Score")){
PlayerPrefs.SetInt("High Score", score);
textMesh1.text = "New High Score!";
// Invoke("changehighscoretext", .7);
}
//Game over stuff
targets.gameObject.active = false;
reset.gameObject.active = true;
}
if (timeLeft == 15){
fifteensecondsleft.audio.Play();
}
if (timeLeft == 3.334){
onesecondsleft.audio.Play();
}
var fingerCount = 0;
for (var touch : Touch in Input.touches) {
if (touch.phase != TouchPhase.Ended touch.phase != TouchPhase.Canceled)
fingerCount++;
}
if (fingerCount > 0){
print ("User has " + fingerCount + " finger(s) touching the screen");
}
var origin = transform.position;
lineRenderer.SetPosition(0, origin);
textMesh1.text = "Time: " + timeLeft.ToString();
textMesh.text = "Score: " + score;
if(iPhoneInput.touchCount == 1 Time.time >= nextFireTime fingerCount < 1) {
firelight.gameObject.active = true;
// flare.gameObject.active = false;
if (firelight.gameObject.active == true){
Invoke ("off", .3);
}
ray = Camera.main.ScreenPointToRay(iPhoneInput.touches[0].position);
Debug.DrawLine(ray.origin,ray.direction * 10);
if(Physics.Raycast(ray.origin, ray.direction * 10,hit)){
var hitRotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
Debug.Log(hit.transform.name);//Object you touched
nextFireTime = Time.time + .3887;
lineRenderer.SetPosition(1, hit.point);
Instantiate(bulletHole, hit.point, hitRotation);
//gun.transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.LookRotation(hit.point), 5 * Time.deltaTime);
if(hit.collider.gameObject.name == "med perfect") {
score += 7;
}
if(hit.collider.gameObject.name == "med big") {
score += 3;
}
if(hit.collider.gameObject.name == "med med") {
score += 5;
}
if(hit.collider.gameObject.name == "big perfect") {
score += 5;
}
if(hit.collider.gameObject.name == "big big") {
score += 1;
}
if(hit.collider.gameObject.name == "big med") {
score += 3;
}
if(hit.collider.gameObject.name == "small perfect") {
score += 15;
perfectlight.gameObject.active = true;
Invoke ("off", .6);
Handheld.Vibrate ();
}
if(hit.collider.gameObject.name == "small big") {
score += 5;
}
if(hit.collider.gameObject.name == "small med") {
score += 7;
}
if(hit.collider.gameObject.name == "reset") {
Application.LoadLevel("1");
}
}
}
}
function off () {
perfectlight.gameObject.active = false;
firelight.gameObject.active = false;
flare.gameObject.active = true;
}
function changehighscoretext (){
newhighscore.text = "High Score: " + PlayerPrefs.GetInt("High Score").ToString();
}
And here is a quick screenshot, thanks again: