function - unityscript 中的基本功能

标签 function syntax unity3d unityscript

我只有一个基本问题。我正在尝试学习如何在 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 版本有很大不同的人使用的名称。

我为您找到了一个很好的差异列表 UnityScriptJavascript here .当我从该网页创建一个快速项目符号列表时,我可以告诉你不同之处(甚至可能不是全部):
  • JavaScript 是无类的
  • JavaScript 支持在一个 var 语句中声明多个变量。
  • 在 JavaScript 中,赋值被视为表达式。
  • JavaScript 中的每个顶级变量都是全局变量。此外,任何没有以 var 开头的变量声明声明是全局性的。
  • 在 Javascript 中,动态类型是高效的。
  • 在 JavaScript 中,隐私是非常规的。
  • 美元符号 ($) 在 UnityScript 标识符中是不允许的,因为它们在 JS 标识符中。
  • 没有with UnityScript 中的声明。
  • Javascript 支持 Regular Expression Literals ( RegExpregex )。
  • 在 JavaScript 中,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/

    相关文章:

    javascript - 数组到动态函数: Use eval or not?

    javascript - 即使看起来写得正确,该操作也是未定义或不可见的

    c++ - C++中 vector 的叉积

    c# - 如何避免错误登录时锁定 UI?

    jquery同步函数

    javascript - 如何在不重新创建 map 的情况下从 ES6 map 对象中删除前 N 项?

    php - Aptana 3 和 PHP 5.4 新的数组格式

    sql-server-2008 - 我的语法有什么问题?

    c# - 如何在 Unity 中更改游戏对象的纹理?

    android - 在android Gear Vr中,是否可以正常启动应用程序,然后在用户单击该选项时将其转换为Unity/VR?