前提・実現したいこと
Unity2Dでアクションゲームを作っている、専門学校生です。
プレイヤーがアイテムを取得した際に、スコアを足していくことを実装したいんですが、正しく表示されません。ネット上で調べたうえで作成しているんですが、この部分がよくわかりません。
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class ItemScript : MonoBehaviour { 7 8 public Text scoreText; //Text用変数 9 private int score = 0; //スコア計算用変数 10 11 void Start(){ 12 scoreText.text = "Score: 0"; //初期スコアを代入して表示 13 } 14 15 //トリガーとの接触時に呼び出されるコールバック 16 void OnTriggerEnter2D(Collider2D col){ 17 string YourTag = col.gameObject.tag; 18 19 //アイテム(イワシ)との衝突 スコア+1 20 if (YourTag == "Iwashi"){ 21 score += 1; 22 scoreText.text = "Score: " + score.ToString(); 23 //このコンポーネントを持つGameObjectを破棄する 24 Destroy(gameObject); 25 26 //アイテム(マグロ)との衝突 スコア+3 27 }else if (YourTag == "Maguro"){ 28 score += 3; 29 scoreText.text = "Score: " + score.ToString(); 30 //このコンポーネントを持つGameObjectを破棄する 31 Destroy(gameObject); 32 33 //アイテム(シャチ)との衝突 スコア+5 34 }else if (YourTag == "Syachi"){ 35 score += 5; 36 scoreText.text = "Score: " + score.ToString(); 37 //このコンポーネントを持つGameObjectを破棄する 38 Destroy(gameObject); 39 40 //アイテム(クリスタル)との衝突 スコア+10 41 }else{ 42 score += 10; 43 scoreText.text = "Score: " + score.ToString(); 44 //このコンポーネントを持つGameObjectを破棄する 45 Destroy(gameObject); 46 } 47 } 48} 49
試したこと
ゲームを動かしてみると、プレイヤーが1個目のアイテム(マグロ)を取得するタイミングで、最後のelseの中身が実行される。そして、2個目以降のアイテムを取得しても、どのif文も実行されません。
補足情報(FW/ツールのバージョンなど)
追加で、アイテムを取得した際に効果音を流したい(上のスクリプトの中で実装したい)と思っています。この方法もできたら教えてほしいです。
Unityのバージョンは、「Unity 2017.2.0f3 Personal (64bit)」です。
ビルドした際のプラットホームは、「PC, Mac & Linux Standalone」です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。