我一直在做一个你可以死的游戏,我想要一个屏幕死亡计数器所以我添加了这个:
// Death Counter
void OnGUI()
{
GUI.Label (Rect (0, 0, 100, 100), DeathCount);
}
但我一直收到一条错误消息,说当前上下文中不存在名称DeathCount,如何让它访问它,在DeathCount的脚本中我有这个:
public static float DeathCount = 0f;
那为什么它不会弹出屏幕?
(我也有错误" UnityEngine.Rect是'类型'但是使用了'变量'",我也需要帮助,但我认为它可能会影响主要问题。)
很抱歉,如果这已经得到解答,我在找了1个多小时后就找不到了。
答案 0 :(得分:1)
这是C#,它有关于如何创建新实例以及如何使用数值创建字符串的规则:
// Death Counter
void OnGUI()
{
GUI.Label ( new Rect (0, 0, 100, 100), DeathCount.ToString() );
}
答案 1 :(得分:0)
public GameObject ObjectHaveScript;//asign in the inspector
void OnGUI()
{
String DeathCount ObjectHaveScript.GetComponent<NameOfScript>().DeathCount;
GUI.Label ( new Rect (0, 0, 100, 100), DeathCount );
}
这是官方文档http://docs.unity3d.com/ScriptReference/Component.GetComponent.html,
的问候;
答案 2 :(得分:0)
假设DeathCount位于一个名为counter的类中,就像这样
public class counter : MonoBehaviour {
public static float DeathCount = 0f;
}
所以我们可以从这样的另一个类访问它,不要忘记你需要把一个字符串作为GUI的第二个参数.Lablel
public class otherClass : MonoBehaviour {
void OnGUI()
{
GUI.Label (Rect (0, 0, 100, 100), counter.DeathCount.ToString());
}
}
答案 3 :(得分:0)
尝试此代码,“myGameObject”是您要访问脚本的gameObject的名称,“myScript”是脚本的名称
private GameObject test = GameObject.Find("myGameObject");
void OnGUI(){
private float dead = test.GetComponent<myScript>.DeathCount;
GUI.Label ( new Rect (0, 0, 100, 100), DeathCount.ToString() );
}
就是这样,不要犹豫,问你是否需要更多的帮助:)