我只是有一个基本问题。我正在尝试学习如何使用unityscript的函数,并且当我使用类似
之类的东西创建函数时我学会了function Example(text)
{
print(text);
}
然后使用
调用它Example();
您实际上可以在括号中的后一段代码的括号中插入一个字符串或数字,它将通过并将其自身插入您之前创建的函数中。在这种情况下,它最终会打印出我在括号中输入的内容。
现在,我的问题是,如果有效,那么为什么我不通过两个数字并要求让它们添加工作?我试图使用的代码如下:
Addition(4, 4);
function Addition(a, b)
{
print(a+b);
}
当我尝试执行此操作时,Unity告诉我
运算符'+'不能与'Object'类型的左侧和'Object'类型的右侧一起使用。
我在Javascript函数上观看了this video,在9分钟左右的视频中,这个人正好键入了这个,然后获取脚本为他添加。我对脚本编程比较陌生,而且我对我可能做错了什么并不太了解。在此先感谢您的帮助。
答案 0 :(得分:5)
实际上,在Unity中,您的代码必须如下所示:
Addition(4, 4);
function Addition(a:int, b:int)
{
print(a+b);
}
你必须在函数的参数中调用你期望的参数类型。你完全正确地指出,在JavaScript中通常不需要这样做。但在Unity中,它是。
这是因为它实际上被称为UnityScript
。 UnityScript是那些想要指出Unity的Javascript与浏览器中使用的传统Javascript版本非常不同的人使用的名称。
我在UnityScript
和Javascript
here之间找到了一个很好的差异列表。当我从该网页创建快速清单时,我可以告诉您差异(可能不是全部):
var
语句之后的变量声明都是全局的。with
语句。 Regular Expression Literals
(RegExp
或regex
)。this
可以引用两种内容之一,具体取决于上下文:
我已重新提出您的问题,以便在UnityScript中对其进行分类。 StackOverflow对此有所说明:
Unity的JavaScript试图密切关注ECMAScript标准 在许多方面与JavaScript的其他实现有所不同 基于相同的标准。它可能与微软最相似 JScript,尤其是两者都是.NET语言。但是,Unity的 版本是独立开发的,有很多 两者之间的差异。
我也必须找到困难的方法。我搞砸了两种语言got to this problem。
答案 1 :(得分:0)
Unity JavaScript由于某种原因没有将4
作为原始Number
类型,因此无法执行添加。
您可以尝试通过调用valueOf()
方法将它们转换为原语。