访问两个文件之间的变量

时间:2015-02-11 02:17:40

标签: variables unity3d click unityscript

我正在尝试访问变量can(我试图成为一个布尔告诉我,如果有人点击我的文本框),我的第二个文件名为upgradeBBPS.js,所以我可以将这个javascript(upgradeBBPS.js)应用到我的文本框,并检查每一帧,看看他们是否点击了文本框。我想要的文本框是将布尔值(true / false)返回到第一个javascript文件(Main.js),然后使clickVal成为clickVal * 1.2的值。

文件1:Main.js

pragma strict
var clicks : GameObject;

var score : UnityEngine.UI.Text;

var clicked : boolean = false;

var baconBits : int = 0;

var clickVal : int = 1;

var baconBitMultCost : int = 10;

//var can : GameObject;

public var can;

function Start () {

}

function Update () {

 score.text = "Bacon Bits: " + baconBits;

}

function OnMouseDown () {

 baconBits += clickVal;

}

function baconBitMultiplier(can) {

 if(boolean)
 {

     if(baconBits>=baconBitMultCost)
     {

         clickVal+=1;

         baconBitMultCost*= 1.2;

     }
 }
}

文件2:upgradeBBPS.js

pragma strict
//var can : boolean;

function Start () {

}

function Update () {

 //Main.getComponent(can) =true;

}

1 个答案:

答案 0 :(得分:1)

访问与第一个脚本相同的GameObject附加脚本中的变量可以这样做:

var bbps: upgradeBBPS;
bbps = gameObject.GetComponent(upgradeBBPS);
bbps.can = true; 

代码首先获取另一个组件,然后设置变量。 (gameObject是指GameObject,其中包含此代码的组件附加到。)

如果另一个脚本附加到另一个GameObject,则需要首先找到该GameObject:

var go : GameObject;
go = GameObject.Find("YourGameObjectName");
var bbps: upgradeBBPS;
bbps = go.GetComponent(upgradeBBPS);
bbps.can = true;

只需将"YourGameObjectName"更改为GameObject的实际名称。