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
继承的脚本实例。有关更多信息,请参阅。