2015-01-16 67 views
1

我最近開始製作一款新遊戲,而且我還是一位業餘編碼員。Unity中的UnityScript無法正常工作

var FlashlightOn : boolean = true; 

function Update() { 
    ButtonClicket(); 
} 

function ButtonClicket() { 
    if (Input.GetButton("Flashlight")) && FlashlightOn == true { 
     Destroy(Flahslight); 
     FlashlightOn = false; 
    } 
    else 
    { 
     Instantiate (Flashlight, Vector3(i * 0, 0, 0), Quaternion.identity); 
     FlashlightOn = true; 
    } 
} 

在編譯器錯誤部分,它說我需要把括號放在最後,其他一些垃圾不需要做。我在這裏做錯了什麼?

+1

這種類型的問題,處理'Unity'和'JavaScript'確實屬於Stackoverflow。我已經將這個問題標記爲遷移。 –

+0

編譯器給出了什麼錯誤? –

+0

也許它在Unity和這裏的不同人可以糾正我,但在標準的JavaScript中有一個**非常重要的約定,所有函數都是用* camelCase *(以小寫字母開頭)編寫的,除非您打算將函數與'new'關鍵字一起使用。 –

回答

2

通過編譯器自己運行代碼,它給出的錯誤是有效的。你的代碼只是有一個語法問題和一個錯字:

if (Input.GetButton("Flashlight") && FlashlightOn == true) { 

if語句的左括號在錯誤的地方。

Destroy(Flashlight); 

拼寫錯誤'手電筒'。

此外,i未定義不是此代碼片段,如果它是全局變量,那很好,但您可能需要仔細檢查它。

+0

現在我又收到2個錯誤:「Assets/GameAssets/Scripts/Flashlight.js(13,29):BCE0023:參數列表'沒有適當的'UnityEngine.Object.Instantiate'版本(System.Type,UnityEngine.Vector3 ,UnityEngine.Quaternion)'找到了。「和「Assets/GameAssets/Scripts/Flashlight.js(9,24):BCE0023:找不到適用於參數列表'(System.Type)'的'UnityEngine.Object.Destroy'版本。」我真的沒有看到問題,我檢查了5次語法錯誤和拼寫錯誤,但我找不到任何東西。 –

+0

這兩個錯誤都是因爲'手電筒'是一個類型,而不是一個對象。你不能[Instantiate](http://docs.unity3d.com/ScriptReference/Object.Instantiate.html)或[Destroy](http://docs.unity3d.com/ScriptReference/Object.Destroy.html)a類型,你需要一個實際的實例。 –