我只有一个基本问题。我正在尝试学习如何在 unityscript 中使用函数,我了解到当您使用类似的东西创建函数时
function Example(text)
{
print(text);
}
然后调用它使用
Example();
您实际上可以在括号中的后一段代码的括号中插入一个字符串或一个数字,它会通过并将自己插入到您之前创建的函数中。在这种情况下,它最终会打印我在括号中输入的任何内容。
现在,我的问题是,如果这有效,那么为什么在我传入两个数字并要求让它们添加工作的地方不起作用?我尝试使用的代码如下所示:
Addition(4, 4);
function Addition(a, b)
{
print(a+b);
}
当我尝试执行此操作时,Unity 告诉我
Operator '+' cannot be used with a left hand side of type 'Object' and a right hand side of type 'Object'.
我在看 this video在 Javascript 函数和大约 9 分钟的视频中,这个人准确地输入了那个,然后让脚本为他添加它。我对脚本很陌生,我对自己可能做错了什么不太了解。在此先感谢您的帮助。
最佳答案
实际上,在 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
UnityScript 中的声明。 Regular Expression Literals
( RegExp
或 regex
)。 this
可以指两件事之一,具体取决于上下文:我已经重新标记了您的问题,以便在 UnityScript 中对其进行分类。 StackOverflow 有这样的说法:
Unity's JavaScript tries to follow the ECMAScript standard closely, it varies in many ways from other implementations of JavaScript that are based on the same standard. It is perhaps most similar to Microsoft's JScript, especially in that both are .NET languages. However, Unity's version was developed independently and there are a number of differences between the two.
我也必须找到困难的方法。我搞砸了两种语言和got to this problem .
关于function - unityscript 中的基本功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15127821/