2013-01-22 28 views
0

我有这些代码统一,我收到此错误。 “操作符”不能用于'object'类型的左侧和'object'类型的右侧。对于我来说,它就像游戏引擎的unityscript中的错误,你认为如何?'操作员>不能用于类型'对象'的左侧和Unity中类型'对象'错误的右侧

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

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

这是有效的javascript。你甚至可以在javascript中比较对象。 –

+0

@JanDvorak但它不能在团结工作。它使我疯狂。 –

+0

在这段代码之前,这不是一个语法错误吗? –

回答

4

UnityScript和Javascript之间是有区别的,在JavaScript中,没有必要把你的变量叫做类,所以你给我们看的代码是正确的。宣布变量的类别,请参阅此示例:

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以提供附加功能,并且过去和未来的所有类实例都受此扩展的影响。

与JavaScript不同,UnityScript具有类。另外,在UnityScript中,一旦你定义了一个类,那么在你的程序运行时间内,该类或多或少是固定的。 (注意:这个规则可能有一些例外,比如Reflection,但是你可能不需要这个,不应该使用它,因为它不是很有效。)然而,类系统还有一个更简单的 - 读,更熟悉(对大多数)的语言。

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." 
相关问题