【问题标题】:Basic Functions in unityscriptunityscript中的基本功能
【发布时间】:2014-07-05 04:54:19
【问题描述】:

我只有一个基本问题。我正在尝试学习如何在 unityscript 中使用函数,我了解到当您使用类似的东西创建函数时

function Example(text)
{
    print(text);
}

然后使用

调用它
Example();

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

现在,我的问题是,如果这可行,那么为什么我不传递两个数字并要求让它们添加工作的函数呢?我尝试使用的代码如下所示:

Addition(4, 4);
function Addition(a, b)
{
    print(a+b);
}

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

运算符“+”不能与“Object”类型的左侧和“Object”类型的右侧一起使用。

我正在观看this video 的 Javascript 函数,并且在大约 9 分钟的视频中,那个人输入了准确的内容,并获取了为他添加的脚本。我对脚本编写相当陌生,而且我对自己可能做错了什么没有太多了解。提前感谢您的帮助。

【问题讨论】:

  • 欢迎来到 SO!很好地格式化你的第一篇文章。

标签: function syntax unity3d unityscript


【解决方案1】:

实际上,在 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 标识符中。
  • UnityScript 中没有with 语句。
  • Javascript 支持Regular Expression LiteralsRegExpregex)。
  • 在 JavaScript 中,this 可以指代以下两种事物之一,具体取决于上下文:
    • 全局对象(最好不要在这里解释)
    • 当前方法或构造函数所属的对象

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

Unity 的 JavaScript 试图紧跟 ECMAScript 标准,它 与 JavaScript 的其他实现在很多方面有所不同 基于相同的标准。它可能与微软的最相似 JScript,尤其是两者都是 .NET 语言。但是,Unity 的 版本是独立开发的,有很多 两者的区别。

我也不得不找出困难的方法。我搞砸了两种语言和got to this problem

【讨论】:

    【解决方案2】:

    Unity JavaScript 出于某种原因没有将这些 4 设为原始 Number 类型,因此它无法执行加法。

    您可以尝试通过调用它们的valueOf() 方法将它们转换为原始类型。

    【讨论】:

    • 我应该把 valueOf() 放在哪里?我尝试了几个不同的地方,但我无法自己弄清楚。
    • @UselessCode 必须是4..valueOf()
    • @UselessCode 也许不是,但对于真正 JavaScript 中的文字数字,您不能单独使用 .
    • 删除了我的评论,因为我有错误的语法,一定是在考虑 Ruby,你可以直接在数字文字上调用方法......我从未见过 .. 语法,你能指出一些文件?
    • @UselessCode 不知道我的头,但只是尝试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多