C# 统一使用不同类中的静态变量

C# 统一使用不同类中的静态变量,c#,unity3d,game-engine,C#,Unity3d,Game Engine,我有以下代码 public class Score : MonoBehaviour { private static int score; public int sc; void OnTriggerEnter2D(Collider2D col) { if (col.tag == "Ball") { score++; sc = score; } } 这是我用来从上面的课程中获得分数

我有以下代码

public class Score : MonoBehaviour {

    private static int score;
    public int sc;

    void OnTriggerEnter2D(Collider2D col) {
        if (col.tag == "Ball") {
            score++;
            sc = score;
        }
    }
这是我用来从上面的课程中获得分数的课程

public class ScoreText : MonoBehaviour {

    Score s = new Score();
    int sc;

    void Update () {
        sc = s.sc;
    }
}

但由于某些原因,我的sc变量在类ScoreText中始终为0。如何修复此问题?

您可以使用class.property获取静态变量的值

public class ScoreText : MonoBehaviour {

    int sc =0 ;

    void Update () {
        sc = Score.score;
    }
}

改变私有静态int分数;对于公共静态int分数

Change
private静态int评分至<代码>公共静态整数分数
并这样称呼它:
Score.Score=5

如果要将其用作属性,可以执行以下操作:

private static int _score;

public int score {
   get{return _score;} 
   set{_score = value;}
}

谢谢你的回答。两个答案都错了。不要使用
new
关键字创建从
monobhavior
继承的脚本实例。有关更多信息,请参阅。