从另一个脚本访问c#变量。统一

时间:2014-11-12 18:28:18

标签: c# variables unity3d

我一直在做一个你可以死的游戏,我想要一个屏幕死亡计数器所以我添加了这个:

// Death Counter
void OnGUI()
    {
        GUI.Label (Rect (0, 0, 100, 100), DeathCount);
    }

但我一直收到一条错误消息,说当前上下文中不存在名称DeathCount,如何让它访问它,在DeathCount的脚本中我有这个:

 public static float DeathCount = 0f;

那为什么它不会弹出屏幕?

(我也有错误" UnityEngine.Rect是'类型'但是使用了'变量'",我也需要帮助,但我认为它可能会影响主要问题。)

很抱歉,如果这已经得到解答,我在找了1个多小时后就找不到了。

4 个答案:

答案 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() );
}

就是这样,不要犹豫,问你是否需要更多的帮助:)