2015-01-16 6 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 할 수 없습니다. 유형을 지정하려면 실제 인스턴스가 필요합니다. –

관련 문제