Unity3d 赋值后变量值仍为零

Unity3d 赋值后变量值仍为零,unity3d,unityscript,Unity3d,Unityscript,我正在使用Unity制作一个简单的游戏,玩家需要尽可能多地捡起硬币。当玩家击中硬币时,硬币将消失,分数将增加,例如增加1,这是我的脚本 #pragma strict var coinEffect : Transform; var coinValue = 2; function OnTriggerEnter (info : Collider) { if (info.tag == "Player") { // Debug.Log("Ball is picked up")

我正在使用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所说:

没有全局变量JavaScript中的每个顶级变量都是全局变量。此外,任何不在var语句前面的变量声明都会自动限定为全局变量。UnityScript中并非如此;UnityScript per sé中实际上没有任何全局变量

这可能是一个原因

注:如果您想为当前问题找到解决方案,请使用常量字段定义另一个类。

正如UnityScript所说:

没有全局变量JavaScript中的每个顶级变量都是全局变量。此外,任何不在var语句前面的变量声明都会自动限定为全局变量。UnityScript中并非如此;UnityScript per sé中实际上没有任何全局变量

这可能是一个原因


注:如果您想为当前问题找到解决方案,请使用常量字段定义另一个类。

因为您使用的是unityscript而不是javascipt。函数外侧定义的变量在unity的inspector视图中设置。代码中对这些变量初始值的更改不会影响从检查器中设置的值

选择已将脚本附加到的游戏对象,并在inspector视图中查找脚本。在这里可以看到变量


因为您使用的是unityscript而不是javascipt,所以在函数外部定义的变量是在unity的inspector视图中设置的。代码中对这些变量初始值的更改不会影响从检查器中设置的值

选择已将脚本附加到的游戏对象,并在inspector视图中查找脚本。在这里可以看到变量


在他的代码中有一个var关键字,所以我猜它与wiki所说的全局变量无关。同样在JavaScript严格模式下,这甚至不再是真的。是的,但是在操作代码中,JavaScript中没有任何全局变量,因为他正在使用var关键字。global mean是否在Unityscript的内部范围之外?我不熟悉Unityscript,但在JavaScript术语中,这些都是全局变量,因为它们不属于任何函数的范围。在他的代码中有var关键字,因此它可能与wiki关于全局变量的说法无关。我阅读时,该子句只引用JavaScript。同样在JavaScript严格模式下,这甚至不再是真的。是的,但是在操作代码中,JavaScript中没有任何全局变量,因为他正在使用var关键字。全局平均值是否超出Unityscript的内部范围?我不熟悉Unityscript,但在JavaScript术语中,这些是全局值,因为它们不属于任何函数的范围。在哪里打印?在函数中,或在文件级别?将其打印到控制台。。使用Debug.LogI mean,日志函数调用放在哪里?在OnTiggerEnter函数中if语句的底部。。Debug.LogcoinValue;奇怪的是,可能其他函数正在为你的值设置null,你必须调试它。在哪里打印?在函数中,或在文件级别?将其打印到控制台。。使用Debug.LogI mean,日志函数调用放在哪里?在OnTiggerEnter函数中if语句的底部。。Debug.LogcoinValue;奇怪的是,可能其他函数正在为你的值设置null,你必须调试它。天哪。。。就这样。。非常感谢。我真的为自己感到羞耻…哈哈哈。。。就这样。。非常感谢。我真的为我自己感到羞愧..哈哈