2012-09-07 8 views
6

私はUnity JSに関する記事を読んでいました。この記事では、1つのクラスの例を示しました。Unity JSにはどのようにクラスがありますか?

class Person{ 
    var name; 
    var career; 
} 

//Create objects of type Person 
var john = Person(); 
john.name = "John Smith"; 
john.career = "doctor"; 
Debug.Log(john.name + " is a " + john.career); 

実際にUnity JSがclassキーワードをサポートしているようです。どのようにclassをJavaScriptでサポートしていますか?彼らは、死んだES4仕様または変更されたES3または5を使用していますか?

答えて

9

UnityScriptとJavaScriptの違いについて、この記事をチェックアウト:またhttp://wiki.unity3d.com/index.php?title=UnityScript_versus_JavaScript

Wikipediaは「ECMAScriptのほうふつ構文を持つカスタム言語」としてUnityScriptを説明し

+0

ようこそスタックオーバーフロー!リンク先のコンテンツの短い要約は、この回答を大幅に改善します(リンクが古くなった場合に問題を防ぐのに役立ちます)。 –

+1

この質問の目的のために、私はその記事の最も重要なフレーズは「Unityの ".js"という言語は、[ECMAScript]仕様に準拠することさえできません。 –

+0

Joachim Saucerが指摘しているように短いサマリーが良いでしょうが、私はそれを答えとして受け入れなければならないと思います。リンクに関する情報は正確です。 – Moon

1

ユニティのJavascriptが本当のJavascriptではない、それをUnityの初心者のための短い構文の新しい言語です。誰かがUnityScriptと呼ぶのは、それらがちょうど2つの異なる言語だからです。

UnityのJavascriptはすべてのOOP機能をサポートするクラスベースのOO言語であり、UnityのC#と同じマネージコードにコンパイルされます。

class Foo : MonoBehaviour { 
    int myVar; 
    void Update() {} 
} 

を以下のように例えば、ユニティ

var myVar : int; 
function Update() {} 

で "foo.jsは" というJavaScriptファイルがノーがあるにもかかわらず、同一の100%を意味するC#のスクリプトと同じですキーワード 'class'はFoo.jsにありますが、実際はFooクラスを作成しています。

あなたは私の言うことを確認するために、別のスクリプトで「Boo.jsを」Fooクラスを継承することができます

class Boo extends Foo { 
    function Update() {} 
} 

ユニティのjavscriptはjavscriptの構文を持っていますが、C#の精神。