2017-01-30 15 views
0

12行目と22行目に構文エラーがあります。余分な/余分な括弧がないようですので、私の更新機能でこれらのエラーを引き起こしていると思います。理想的には、プログラムを8秒間リロードする前に4回発射できるようにしたい。期待値)期待値{EOFが見つかりました} Unity Javascript

#pragma strict 
 

 
var Bullet : Transform; 
 
var Spawn : Transform; 
 
var amountOfShots = 4; 
 
    
 
function Update() { 
 
    \t if (Input.GetKeyDown("r") { 
 
     Reload(); //Calls the reload function 
 
    } 
 

 
    if (Input.GetButtonDown("Fire1")) { 
 
     //Fires on left click 
 
     Shoot(); 
 
     amountOfShots --; 
 
     //Calls shoot function and removes one shot from amountOfShots 
 
    } 
 
} 
 
    
 
function Shoot() { 
 
    var pel = Instantiate(Bullet, Spawn.position, Spawn.rotation); 
 
    pel.rigidbody.AddForce(transform.forward * 6000); 
 
    //instantiates bullet at spawn point and adds a force to propel the bullet forward 
 
     
 
    if (amountOfShots <= 0) { 
 
     Debug.Log("No ammo left in magazine"); 
 
     //Tells player if there is not enough ammo to fire 
 
    }  
 
} 
 

 
function OnReload() 
 
    "setTimeout(8000, 3000)" 
 
//Waits 8 seconds while reloading 
 

 
function Reload() 
 
{ 
 
    amountOfShots = 4; 
 
    //resets amount of shots to 4 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

ありがとうございました。コードは正常に動作するように見えますが(シンタックスエラーはありません)、シュート関数は実際の弾オブジェクトをインスタンス化していないようです。ユニティエンジンでは、目に見えないブレット(クローン)が生成されます。誰でも何が起こっているのか考えている?私はプロジェクトに実際の弾丸プレハブを持っています – DarkestDreams

答えて

0

機能ifelseforwhileとしてそれらの内側にありますどのように多くの手順については、同じ手順に従っていません。

関数は、本体に(中に1つの命令が含まれていても)常に中カッコ({および})を配置する必要があります。だから、これは:

function OnReload() 
    "setTimeout(8000, 3000)" 

はこのようになります。あなたの最初のif文で行方不明閉じ括弧があり

function OnReload() { 
    "setTimeout(8000, 3000)"; // a ; is optional here (in this case) but it's not a good habbit to ignore them. 
} 
1

if(Input.GetKeyDown("r") 

があるべきで

if(Input.GetKeyDown("r")) 
1

あなたは12行目の閉じ括弧を忘れてしまったのでeエラー。

if(Input.GetKeyDown("r")) 

構文エラーについてユーザーに通知するIDEを使用してください。 WebstormとBracketは良いものです。

ありがとうございました

関連する問題