我想创建一个评分系统。我有4个按钮,4个不同但相似的脚本,并希望分享1个GUI文本的分数。示例代码:
var something : Sprite;
var SpriteRenderer : SpriteRenderer;
var score : int = 0;
var guiScore : GUIText;
function OnMouseDown () {
if(SpriteRenderer.sprite == something) {
score += 1;
guiScore.text = "Score: " = score;
}
}
现在,如果我按下一个按钮并得到一个点,那么我按下一个不同的按钮,分数将从0再次开始。我如何共享静态变量但不同脚本之类的数据?我知道这听起来有点诺比,但任何帮助都会非常感激。提前致谢
答案 0 :(得分:0)
静态变量不会出现在检查器中,因此您无法在检查器中分配GUIText(感谢您让我找到)。因此,请尝试使用GetComponent
代替:
// make a variable of type GUIText
var guiScore: GUIText;
// assign the gameobject in the inspector
var staticObject: GameObject;
// Again I don't know the name of your script, so I'll name it StaticScript
// get the script
StaticScript scr = staticObject.GetComponent(StaticScript);
// assign local GUIText with the one from above
guiScore = scr.guiScore;
这样您就已经为所有其他脚本共享了1个GUIText。
然而你说:
现在,如果我按下一个按钮并得到一个点,那么我按下了一个 不同的按钮得分将从0再次开始
这是不是意味着score
出了问题,而不是GUIText
?