2014-11-10 2 views
0

Я хочу показать свое здоровье как GUIText и уменьшаться, когда игрок бьет. Как закодировать на основе моего сценария работоспособности?Как отобразить здоровье с помощью GUIText?

Вот мой healthscript

using UnityEngine; 
using System.Collections; 

public class HealthScript : MonoBehaviour { 

    public static HealthScript instance; 
    public int hp = 1; 
    private GUIText scoreReference; 
    private GUIText highscoreReference; 
    private static int _highscore = -1; 
    public int highscore { 
     get { if (_highscore == -1) 
      _highscore = PlayerPrefs.GetInt("Highscore", 0); 
      return _highscore; 
     } 
     set { 
      if (value > _highscore) { 
       _highscore = value; 
       highscoreReference.text = _highscore.ToString(); 
       PlayerPrefs.SetInt("Highscore", _highscore); 
      } 
     } 
    } 

    public bool isEnemy = true; 


    private static int points; 
    public void Damage(int damageCount) { 
     hp -= damageCount; 

     if (hp <= 0) 
     { 
      // Dead! 
      Destroy(gameObject); 
      points++; 
      scoreReference.text = points.ToString(); 
     } 
    } 

    public void gameEnd() { 

     highscore = points; 
     points = 0; 
    } 


    void Start() 
    { 
     scoreReference = GameObject.Find("Score").guiText; 
     highscoreReference = GameObject.Find("HighScore").guiText; 
     scoreReference.text = points.ToString(); 
     highscoreReference.text = highscore.ToString(); 
     instance = this; 
    } 

UPDATE: Я НЕ ХОЧУ ЧТОБЫ ПОКАЗАТЬ ВРАГА ЗДОРОВЬЕ, ЭТО СЦЕНАРИЙ придавалось КАЖДЫЙ ВРАГ

enter image description here

ответ

2

Я рекомендую вам использовать OnGUI метод всегда показывать интерфейс игры

void OnGUI(){ 
    GUI.color = Color.red; 
    GUI.Label(new Rect (20,20,200,20), "Health = " + hp); 
} 

Вся документация Вы должны понимать этот код здесь:

GUI.Label http://docs.unity3d.com/ScriptReference/GUI.Label.html OnGUI метод: http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnGUI.html

Надеюсь, это поможет вам, спросите, есть ли у вас какие-либо проблемы с этим кодом!

+0

только этот код? извините, я все еще пытаюсь понять –

+1

Метод OnGui запускает каждый кадр, и он используется для представления интерфейса игры. С GUI.Label вы создаете «ящик» с размером Rect и текстом «Здоровье» + переменная hp. Просто вставьте код (я только что отредактировал код, имел ошибку) и запустил игру, вы увидите, как это работает;) –

+0

хорошо, я добавил этот код, но он не отображался, что-то пропало? –

2

Вы можете использовать переменную, чтобы показать на графическом интерфейсе с помощью C#:

var myNiceVariable = "Showing the health values!"; 
var guiText = GameObject.Find("GUI Text").GetComponent(GUIText); 
guiText.text = myNiceVariable; 

or yo и можно использовать метод OnGui, вы можете добавить в ваш скрипт:

void OnGui(){ 
    GUI.Label(new Rect (5,5,10,100), "Health: " + hp); 
} 

код, взятый из here и here.

+0

это javascript? –

+0

Вы имеете в виду что-то вроде этого? недействительными OnGUI() \t { \t \t GUILayout.Label (Rect (5,5,10,100), "Очки:" + л.с.); \t} –

+0

Да, я обновляю ответ, чтобы показать его на C#. Извините за беспорядок! –

Смежные вопросы