C# 如何使用GuitText显示运行状况?
我想将我的健康状况显示为吉他文本,并在演奏者敲击时降低。如何基于我的健康脚本进行编码 这是我的健康脚本C# 如何使用GuitText显示运行状况?,c#,unity3d,C#,Unity3d,我想将我的健康状况显示为吉他文本,并在演奏者敲击时降低。如何基于我的健康脚本进行编码 这是我的健康脚本 using UnityEngine; using System.Collections; public class HealthScript : MonoBehaviour { public static HealthScript instance; public int hp = 1; private GUIText scoreReference;
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;
}
使用UnityEngine;
使用系统集合;
公共类HealthScript:MonoBehavior{
公共静态脚本实例;
公共int hp=1;
私人吉他参考;
私人吉他参考;
私有静态int_highscore=-1;
公共整数高分{
获取{if(_highscore==-1)
_highscore=PlayerPrefs.GetInt(“highscore”,0);
返回高分;
}
设置{
如果(值>高分){
_高分=价值;
highscoreReference.text=_highscore.ToString();
PlayerPrefs.SetInt(“高分”和“高分”);
}
}
}
公共利益=真;
私有静态int点;
公共空间伤害(智力伤害计数){
hp-=损伤计数;
如果(hp您可以使用变量在GUI上用C#轻松显示,方法如下:
var myNiceVariable = "Showing the health values!";
var guiText = GameObject.Find("GUI Text").GetComponent(GUIText);
guiText.text = myNiceVariable;
或者,您可以使用该方法,也可以向脚本中添加:
void OnGui(){
GUI.Label(new Rect (5,5,10,100), "Health: " + hp);
}
代码取自和。通过执行以下操作,您可以使用变量在GUI上用C#轻松显示:
var myNiceVariable = "Showing the health values!";
var guiText = GameObject.Find("GUI Text").GetComponent(GUIText);
guiText.text = myNiceVariable;
或者,您可以使用该方法,也可以向脚本中添加:
void OnGui(){
GUI.Label(new Rect (5,5,10,100), "Health: " + hp);
}
代码取自和。我建议您始终使用OnGui方法来显示游戏界面
void OnGUI(){
GUI.color = Color.red;
GUI.Label(new Rect (20,20,200,20), "Health = " + hp);
}
理解此代码所需的所有文档如下:
标签
OnGui方法:
希望这对您有所帮助,询问您是否对这段代码有任何问题!我建议您始终使用OnGui方法来显示游戏的界面
void OnGUI(){
GUI.color = Color.red;
GUI.Label(new Rect (20,20,200,20), "Health = " + hp);
}
理解此代码所需的所有文档如下:
标签
OnGui方法:
希望这对您有所帮助,询问您是否对这段代码有任何问题!您的意思是这样的吗?void OnGui(){GUILayout.Label(Rect(5,5,10100),“Points:”+hp);}是的,我正在更新答案,以便用C#显示它。很抱歉造成混淆!我添加了那行代码,但它说的是UnityEngine。Rect是一种类型,但它像变量一样使用。检查更新,缺少“新”键盘。你可以在代码之外创建Rect,并在那里使用它。你的意思是这样的吗?void OnGui(){GUILayout.Label(Rect(5,5,10100),“Points:+hp)}是的,我正在更新答案以用C#显示它。很抱歉造成混淆!我添加了那行代码,但它说的是UnityEngine。Rect是一种类型,但它使用的方式类似于variableCheck更新,即“new”键盘丢失。你可以在代码外创建Rect并在那里使用它。OnGui方法运行每一帧,用于表示游戏的界面。使用GUI。标记你正在创建一个带有Rect大小和文本“Health”+你的hp变量的“框”。只需粘贴代码(我刚刚编辑了代码,有一个bug)然后运行游戏,你会看到它是如何工作的;)好吧,我添加了代码,但它没有显示,缺少了什么?创建一个名为gameController的空游戏对象,然后将需要在游戏上运行的所有脚本附加到该游戏对象上总是好的。好的,你可以用简单的方法解决这个“问题”。只需创建一个公共布尔变量(public bool isPlayer;)。现在,在游戏对象检查器中,您可以选择变量的值(如果您在玩家的游戏对象中,则为true;如果您在敌人的游戏对象中,则为false)。然后,用isPlayer创建一个if-else语句。你应该对此没有问题,如果它有效,请毫不犹豫地提供帮助并投票。嘿,这对我帮助很大。感谢你的想法!它很有效…:t OnGui方法每帧运行一次,它用于表示游戏的界面。使用GUI.Label,你正在创建一个“框”使用Rect的大小和文本“Health”+您的hp变量。只需粘贴代码(我刚刚编辑了代码,有一个bug)并运行游戏,您就会看到它是如何工作的;)好的,我添加了代码,但它没有显示,缺少了什么?创建一个名为gameController的空游戏对象,然后将游戏上运行的所有脚本附加到该游戏对象上总是好的。好的,你可以用简单的方法解决这个“问题”。只需创建一个公共布尔变量(public bool isPlayer;).现在,在游戏对象检查器中,您可以选择变量的值(如果您在玩家的游戏对象中,则为true;如果您在敌人的游戏对象中,则为false)。然后,用isPlayer创建一个if-else语句。你应该对此没有问题,如果它有效,请毫不犹豫地提供帮助并投票支持!嘿,这对我很有帮助。谢谢你的想法!这是有效的…:D