1

我有这些代码,我收到了这个错误。“运算符>不能与'object'类型的左侧和'object'类型的右侧一起使用。对我来说,这就像游戏引擎的unityscript中的一个错误,你怎么看??

var PlayerNames = ["john","doe","potato"];
var PlayerScores = [3,2,5];

if(PlayerScores[1] < PlayerScores[0])
print("potato");
4

1 回答 1

5

UnityScript 和 Javascript 之间存在差异。在 JavaScript 中,不需要将变量调用到类中。因此,您向我们展示的代码是正确的。

但是,这在 UnityScript 中是不正确的。您需要声明变量的类。看这个例子:

function Machine(x) {
   this.kind = ["bulldozer", "lathe", "car"][x];
}

var c = new Machine(2);
print(typeof c.announce); // "undefined"

Machine.prototype.announce = function() {
   print("I am a "+this.kind+".");
};

print(typeof c.announce); // "function"
c.announce(); // prints "I am a car."

如上所示,在 JavaScript 中,一个函数可以在使用 new 关键字调用时创建一个对象。在此之后,原型(模板)对象 Machine 可以被扩展以提供额外的功能,并且所有的类实例,过去和未来,都会受到这个扩展的影响。

UnityScript 有类,不像 JavaScript。此外,在 UnityScript 中,一旦定义了一个类,该类在程序运行期间或多或少是固定的。(注意,这条规则可能有一些例外,例如反射,但您可能不需要它,也不应该使用它,因为它效率不高。)但是,类系统还有一个额外的好处,那就是更容易上手。 -阅读,更熟悉(对大多数人来说)语言。

class Machine {
   var kind : String; // fields are public by default
   function Machine(x : int) {
      this.kind = ["bulldozer", "lathe", "car"][x];
   }

   function announce() {
      print("I am a "+this.kind+".");
   }
}

print(typeof Machine.prototype); // causes a compile-time error
var c = new Machine(2);
c.announce(); // prints  "I am a car."
于 2013-02-28T12:36:31.727 回答