在脚本之间共享数据?

时间:2014-08-25 12:42:22

标签: scripting unity3d unityscript

我想创建一个评分系统。我有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再次开始。我如何共享静态变量但不同脚本之类的数据?我知道这听起来有点诺比,但任何帮助都会非常感激。提前致谢

1 个答案:

答案 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