unityscript中的基本功能

Tou*_*inu 5 syntax function unity-game-engine unityscript

我只是有一个基本问题.我正在尝试学习如何使用unityscript的函数,并且当我使用类似的东西创建函数时我学会了

function Example(text)
{
    print(text);
}
Run Code Online (Sandbox Code Playgroud)

然后使用它来调用它

Example();
Run Code Online (Sandbox Code Playgroud)

您实际上可以在括号中的后一段代码的括号中插入一个字符串或数字,它将通过并将其自身插入您之前创建的函数中.在这种情况下,它最终打印出我在括号中键入的内容.

现在,我的问题是,如果有效,那么为什么不通过我传递两个数字并要求让它们添加工作?我试图使用的代码如下:

Addition(4, 4);
function Addition(a, b)
{
    print(a+b);
}
Run Code Online (Sandbox Code Playgroud)

当我尝试执行此操作时,Unity告诉我

运算符"+"不能与"对象"类型的左侧和"对象"类型的右侧一起使用.

我在看这个视频在9分钟的Javascript功能,并在视频中,正是那家伙的类型,并获取脚本添加给他.我对脚本编程比较陌生,而且我对我可能做错了什么并不太了解.在此先感谢您的帮助.

Joe*_*jah 5

实际上,在Unity中,您的代码必须如下所示:

Addition(4, 4);
function Addition(a:int, b:int)
{
    print(a+b);
}
Run Code Online (Sandbox Code Playgroud)

你必须在函数的参数中调用你期望的参数类型.你完全正确地指出,在JavaScript中通常不需要这样做.但在Unity中,它是.

这是因为它实际上被调用了UnityScript.UnityScript是那些想要指出Unity的Javascript与浏览器中使用的传统Javascript版本非常不同的人使用的名称.

我在这里UnityScriptJavascript 这里找到了一个很好的差异列表.当我从该网页创建快速清单时,我可以告诉您差异(可能不是全部):

  • JavaScript是无类的
  • JavaScript在一个var语句中支持多个变量声明.
  • 在JavaScript中,赋值被视为表达式.
  • JavaScript中的每个顶级变量都是全局变量.此外,任何不在var语句前面的变量声明都是全局的.
  • 在Javascript中,动态类型是有效的.
  • 在JavaScript中,隐私是非常规的.
  • UnityScript标识符中不允许使用美元符号($),因为它们位于JS标识符中.
  • withUnityScript中没有声明.
  • Javascript支持Regular Expression Literals(RegExpregex).
  • 在JavaScript中,this可以参考两件事之一,具体取决于上下文:
    • 全局对象(最好不在这里解释)
    • 当前方法或构造函数所属的对象

我已经重新提出了您的问题,以便在UnityScript中对其进行分类.StackOverflow对此有这样的说法:

Unity的JavaScript试图密切关注ECMAScript标准,它在很多方面与基于相同标准的其他JavaScript实现有所不同.它可能与微软的JScript最相似,尤其是两者都是.NET语言.然而,Unity的版本是独立开发的,两者之间存在许多差异.

我也必须找出困难的方法.我弄乱了两种语言并解决了这个问题.