2013-02-28 11 views
5

基本的な質問があります。あなたはユニティスクリプトの基本機能

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

のようなものを使用して関数を作成し、

Example(); 

を使用してそれを呼び出すときに、実際に文字列を挿入できることを私はunityscriptで関数を使用する方法を学習しようとしていると私は学びましたカッコ内のコードの後ろにある括弧に数字を入れて、前に作成した関数にパススルーして自分自身を挿入します。この場合、かっこに入力したものはすべて印刷されます。

私の質問は、それがうまくいくならば、なぜ2つの数字を渡して機能を追加するように頼むのでしょうか?私のようなルックスを使用しようとしているコード:私はこれを実行しようとすると、Unityは演算子「+」

私に語っ

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

は型「オブジェクトの左側で使用することはできません'とタイプ'オブジェクト 'の右側。

私は、JavaScriptの機能にthis videoを見て、約9分のビデオでは、まさにその中に男のタイプ、そして彼のためにそれを追加するためのスクリプトを取得しました。私はスクリプティングをするのがむしろ新しいので、私が間違っていることが何であるかについてのアイデアはあまりありません。助けを前にありがとう。

+4

ようこそ!あなたの最初の投稿をうまく書式設定してください。 – davidethell

答えて

5

実は、ユニティにあなたのコードは次のようになりなければならないでしょう:

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

あなたは、関数のパラメータに期待する引数の種類を呼び出す必要があるだろう。あなたは、JavaScriptではこれが通常は必要でないことを述べることで、まったく正しいです。 Unityではそれはそうです。

実際にはUnityScriptと呼ばれています。 UnityScriptは、UnityのJavascriptがブラウザで使用されるJavascriptの従来のバージョンと非常に異なることを指摘したい人が使用する名前です。

UnityScriptJavascripthereの間の相違点の良いリストを見つけました。違いは(おそらくないとしてもすべて)です私はそのウェブページのうち、迅速なbulletlistを作成するときに、私はあなたを伝えることができます。

  • JavaScriptはクラスの無
  • でJavaScriptが1つのvarステートメントで複数の変数宣言をサポートしています。
  • JavaScriptでは、割り当ては式として扱われます。
  • JavaScriptのすべてのトップレベル変数はグローバルです。さらに、varステートメントが前に付いていない変数宣言はすべてグローバルです。
  • Javascriptでは、動的な型指定が効率的です。
  • JavaScriptでは、プライバシーはかなり変わっています。
  • ドル記号($)は、JS識別子にあるようにUnityScript識別子では使用できません。
  • UnityScriptにはwith文がありません。
  • Javascript support Regular Expression LiteralsRegExpまたはregex)。
  • JavaScriptで
  • thisは、コンテキストに応じて、2つのいずれかを参照することができます。
    • グローバルオブジェクト(最高ここでは説明しません)
    • 現在のメソッドまたはコンストラクターが
    属するオブジェクト

私はあなたの質問にタグを付けてUnityScriptでも分類しています。 StackOverflowのは、それについて言うためにこれを持っている:ユニティのJavaScriptが密接のECMAScript標準に従おうとします

、それ は同じ標準に基づいて あるのJavaScriptの他の実装から多くの点で異なります。 Microsoftの JScriptとおそらく最もよく似ています。特に、どちらも.NET言語です。しかし、Unityの バージョンは独立して開発されていて、2つの間には多くの の違いがあります。

私もハードな方法を見つけなければなりませんでした。私は2つの言語とgot to this problemを台無しにしました。

0

Unity何らかの理由でJavaScriptが4をプリミティブNumberタイプにしていないため、追加できません。

valueOf()メソッドを呼び出すことでプリミティブに変換することができます。

+0

どこにvalueOf()を配置しますか?私はいくつかのスポットを試しましたが、私自身はそれを理解することができませんでした。 – Toushinu

+0

@UselessCode '4..valueOf()'にする必要があります。 – alex

+0

'..'?統一は '..'を使ってメンバーにアクセスしますか? –

関連する問題