2015-01-16 2 views
1

Недавно я начал создавать новую игру, и я своего рода любительский кодер.UnityScript в Unity не работает правильно

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) { 

закрывающей скобкой для если заявление было в неправильном месте.

Destroy(Flashlight); 

Вы ошибаетесь 'Фонарик'.

Кроме того, i не определен, это не фрагмент кода, который является прекрасным, если это глобальная переменная, но вы можете дважды проверить его.

+0

Теперь у меня есть еще две ошибки: «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: не найдено подходящей версии« UnityEngine.Object.Destroy »для списка аргументов« (System.Type) ». Я действительно не вижу проблемы, я проверил 5 раз для синтаксических ошибок и для орфографических ошибок, но я ничего не могу найти. –

+0

Обе эти ошибки связаны с тем, что 'Flashlight' является типом, а не объектом. Вы не можете [Instantiate] (http://docs.unity3d.com/ScriptReference/Object.Instantiate.html) или [Destroy] (http://docs.unity3d.com/ScriptReference/Object.Destroy.html) a Тип, вам нужен фактический экземпляр. –

Смежные вопросы