2013-02-28 42 views
5

我只是有一個基本的問題。我想了解如何使用功能與unityscript,我瞭解到,使用unityscript的基本功能

Example(); 

實際上你可以插入一個字符串,當你創建一個使用一些功能像

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

,然後調用它或一個數字插入括號中的後一段代碼中的括號中,它將通過並將其自身插入到您之前創建的函數中。在這種情況下,無論我輸入什麼括號,它都會結束打印。

現在,我的問題是,如果這是有效的,那麼爲什麼不通過兩個數字的功能,並要求讓他們增加工作?我試圖使用的代碼如下所示:

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

當我嘗試執行此,團結告訴我

操作「+」不能與類型的左側使用「對象'和'對象'類型的右側。

我在大約9分鐘的Javascript功能,在視頻觀看this video,恰好是這傢伙的類型,並獲取腳本添加給他。我對腳本編程並不熟悉,對於我可能做錯了什麼我沒有太多的想法。先謝謝您的幫助。

+4

歡迎來到SO!格式化你的第一篇文章的好工作。 – davidethell 2013-02-28 04:57:57

回答

5

事實上,在團結你的代碼必須看起來像:

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

你得叫你函數的參數期待什麼類型的參數。你完全正確地說,在JavaScript中這通常不是必需的。在統一,它是。

這是因爲它實際上被稱爲UnityScript。 UnityScript是那些想要指出Unity的Javascript與瀏覽器中使用的Javascript的傳統版本非常不同的人使用的名稱。

我在UnityScriptJavascripthere之間找到了一個很好的差異列表。當我創建一個快速bulletlist了該網頁,我可以告訴你的差異(也許甚至不是全部):

  • JavaScript是無類
  • 的JavaScript支持多種變量聲明在一個var語句。
  • 在JavaScript中,賦值被視爲一個表達式。
  • JavaScript中的每個頂級變量都是全局變量。此外,任何不在var聲明之前的變量聲明都是全局的。
  • 在Javascript中,動態類型是有效的。
  • 在JavaScript中,隱私是相當不合常規的。
  • Unity標識符中不允許使用美元符號($),因爲它們在JS標識符中。
  • UnityScript中沒有with語句。
  • Javascript支持Regular Expression LiteralsRegExpregex)。
  • 在JavaScript中,this可以參照兩種情況之一,這取決於上下文:
    • 全局對象(最好不要在這裏解釋)
    • 對象到當前的方法或構造屬於

我已經重申了您的問題,並在UnityScript中對它進行了分類。 StackOverflow上有這樣一段話吧:

統一的JavaScript試圖緊跟ECMAScript標準,它 從那些基於相同標準的JavaScript 的其他實現多種方式變化。它可能與Microsoft的 JScript最爲相似,尤其是它們都是.NET語言。但是,Unity的 版本是獨立開發的,兩者之間有許多差異。

我也必須找出困難的方法。我搞砸了兩種語言和got to this problem

0

由於某種原因,JavaScript不會將那些4作爲原始Number類型,所以它不能執行加法操作。

您可以嘗試通過調用valueOf()方法將它們轉換爲基元。

+0

我會在哪裏放置valueOf()?我嘗試了幾個不同的地方,但我無法自己弄清楚。 – Toushinu 2013-02-28 05:15:38

+0

@UselessCode它需要是'4..valueOf()'。 – alex 2013-02-28 06:59:48

+0

'..'?統一使用'..'來訪問成員? – 2013-02-28 07:00:47