【问题标题】:Unityscript - what kind of declaration is this?Unityscript - 这是什么样的声明?
【发布时间】:2011-05-01 06:35:24
【问题描述】:

我来自其他编程语言,并且是 Unityscript 的新手。我试图了解 Unityscript 代码在做什么。

我找到了这条线

var guiTouchPos : Vector2 = touch.position - guiTouchOffset;

这是什么声明?这条线在做什么? 写起来不容易吗

var guiTouchPos = touch.position - guiTouchOffset;

因为我没有看到代码中的任何地方都使用了 Vector2?

是否将减法分配给两个变量?

谢谢。

【问题讨论】:

  • 快速 Google 代码搜索 shows where that piece of code comes from
  • 我认为那是 UnitiyScript 而不是 ActionScript
  • 如果你用谷歌搜索源代码中使用的FindObjectsOfType() 函数,你可以看到它是一个 Unity 函数。而且 UnityScript 似乎也有 (受 ES4 启发) 可选静态类型,如 Actionscript。
  • 他们称之为 Javascript。这就是为什么我说它是

标签: unity3d unityscript


【解决方案1】:

这不是 JavaScript,而是 ActionScript 3UnityScript: 表示类型声明。

【讨论】:

  • 我认为 ECMAScript 4 标准也考虑过类似的减速方案,但该努力被放弃了。
  • ActionScript 3 是 ecma 4 的基础
  • 拉撒路错了。 ECMAScript4 已被废弃。没有浏览器或当前的 JavaScript 编译器将其识别为有效语法,无论是 Gecko、V8、Webkit,还是 Rhino 或 Triton。
  • @apphacker - 有没有想过比浏览器看得更远? Unity 使用它,OP 给出的示例来自 Unity。而且无论是实施、开发还是废弃,它仍然有效的 JavaScript 2.0!
  • @Lazarus:在 ECMA 加持之前,没有“有效的 JavaScript 2.0!”。有一些东西可以实现 JS2 中的内容,但“有效”意味着符合某些不存在的标准。
【解决方案2】:

那是 JavaScript 中的无效语法,所以写成这样是行不通的。

更新

该语法在 ActionScript 中有效,冒号后面的部分(此处为Vector2)表示正在声明的变量的类型;它显然也是有效的,并且在 Unity 中的类似 JavaScript 的脚本语言中具有相同的含义,从 Chuck's answer 看来,这显然是代码最初编写的目的。从 what I've just read about Unity's "JavaScript" 开始,它与任何版本的语言都不兼容,不应称为 JavaScript。

【讨论】:

  • 反对者:请解释。该问题现已重新标记为 ActionScript,但在我回答时,这是正确的。
  • @Digital Robot:是的,这就是我反对的。如果他们坚持称它为 UnityScript,我会更喜欢它。它很像 JavaScript,但也有自己的事情(例如,没有匿名函数),这意味着它不符合 JavaScript 的任何定义。
  • 是的,我发现当我尝试使用关键字 javascript 搜索这种声明时,什么也没找到! :D
【解决方案3】:
猜你喜欢
  • 1970-01-01
  • 2014-01-15
  • 1970-01-01
  • 2012-11-17
  • 2012-07-13
  • 2014-09-20
  • 1970-01-01
相关资源
最近更新 更多