我正在尝试访问变量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;
}
答案 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的实际名称。