赋值后变量值仍然为零
Variable value still zero after assigned a value
我正在使用 Unity 制作一款简单的游戏,玩家需要尽可能多地捡起硬币。当玩家击中硬币时,硬币会消失,分数会增加,例如增加1,这是我的脚本
#pragma strict
var coinEffect : Transform;
var coinValue = 2;
function OnTriggerEnter (info : Collider) {
if (info.tag == "Player") {
// Debug.Log("Ball is picked up");
var effect = Instantiate(coinEffect, transform.position, transform.rotation);
GameMaster.currentScore += coinValue;
Debug.Log(coinValue);
};
}
问题是当我将变量 coinValue
打印到控制台时,它被打印为 0。
知道为什么吗?
更新我不知道为什么,但如果我声明另一个变量,例如 number
= 12 并打印它..它正在工作。但也许这是一个非常奇怪的变量名案例..我不知道..也许,他们的程序中可能存在这个变量名的缺陷
正如 UnityScript wiki 所说:
No Global Variables Every top-level variable in JavaScript is global. Additionally, any variable declaration not preceded by the var statement is automatically scoped to be global. This is not the case in UnityScript; there are not really any global variables in UnityScript per sé.
这可能是一个原因。
Ps.: 如果您想为您当前的问题找到解决方案:定义另一个 class,具有常量字段。
因为您使用的是 unityscript(不是 javascipt),在函数外定义的变量是在 inspector
统一视图中设置的。在代码中更改这些变量的初始值不会影响从 inspector
.
设置的值
Select 您已将脚本附加到的游戏对象,并在 inspector
视图中找到该脚本。在那里你可以看到变量。
我正在使用 Unity 制作一款简单的游戏,玩家需要尽可能多地捡起硬币。当玩家击中硬币时,硬币会消失,分数会增加,例如增加1,这是我的脚本
#pragma strict
var coinEffect : Transform;
var coinValue = 2;
function OnTriggerEnter (info : Collider) {
if (info.tag == "Player") {
// Debug.Log("Ball is picked up");
var effect = Instantiate(coinEffect, transform.position, transform.rotation);
GameMaster.currentScore += coinValue;
Debug.Log(coinValue);
};
}
问题是当我将变量 coinValue
打印到控制台时,它被打印为 0。
知道为什么吗?
更新我不知道为什么,但如果我声明另一个变量,例如 number
= 12 并打印它..它正在工作。但也许这是一个非常奇怪的变量名案例..我不知道..也许,他们的程序中可能存在这个变量名的缺陷
正如 UnityScript wiki 所说:
No Global Variables Every top-level variable in JavaScript is global. Additionally, any variable declaration not preceded by the var statement is automatically scoped to be global. This is not the case in UnityScript; there are not really any global variables in UnityScript per sé.
这可能是一个原因。
Ps.: 如果您想为您当前的问题找到解决方案:定义另一个 class,具有常量字段。
因为您使用的是 unityscript(不是 javascipt),在函数外定义的变量是在 inspector
统一视图中设置的。在代码中更改这些变量的初始值不会影响从 inspector
.
Select 您已将脚本附加到的游戏对象,并在 inspector
视图中找到该脚本。在那里你可以看到变量。