前提
Unity、C#でクイズゲームを作っています。
ライフ制(3回間違えたらゲームオーバー)を考えています。
間違えたら、ライフの画像が消えるようにしたいです。
問題
とても初心者の質問で申し訳ございません。
シーンにある画像を消したいと思います。
しかし、消したはいいものの、次のシーン(同じシーンを新たに発生させる)に移ると消した画像がまた出てきます。
staticを使えばずっと消えた状態になると思いましたがうまくいきません。
該当のソースコード
public class QuizMgr : MonoBehaviour { public static GameObject Heart;
Heart = GameObject.Find("ハート"); Heart.SetActive(false);
よろしくお願いします。
追記
using UnityEngine; using System.Collections; public class HeartBox : MonoBehaviour { public bool dontDestroyEnabled = true; private static GameObject instance = null; public static GameObject Instance { get { return instance; } } void Awake() { //対応させる instance = this.gameObject; //instanceに入っていて、それがHeartBoxなら破壊 if (instance != null && instance != this) { Destroy(this.gameObject); return; } DontDestroyOnLoad(this.gameObject); } //このDeleteInstance2は、今は何も使っていません public static void DeleteInstance2() { if (instance != null) { Destroy(instance.gameObject); instance = null; } } }
画像(ハートのマーク)にこのスプリクトを入れます。
次のシーンに移動させるメソッドの中に、
//ダメージの変数 public static int qCount; //ハートを見つける変数 public static GameObject Heart;
public void NextQuiz() { //もし不正解なら if(g_judgeData == "不正解") { //同じシーンが続く SceneManager.LoadScene("Quiz"); //1ダメージを入れる qCount++; //1ダメージ入ったのなら if (qCount == 1) { //ライフの画像を非表示 Heart = GameObject.Find("ハートのマーク"); Heart.SetActive(false); } } }
ボタンにこのNextQuiz()を入れて、ボタンを押すと、同じシーンがまた現れるようになってます。
次は、最初から画像が消えた状態になってしまいました。画像が消えたのはHeartBoxクラスのAwake()のif文が問題だろうと思います。しかし、どうしたら画像を最初だけ出して、一回目の「不正解」以降は非表示、にすればいいのか分かりません。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/18 11:38
2018/05/18 12:00
2018/05/18 14:00
2018/05/19 00:59
2018/05/19 01:17
2018/05/19 02:21
2018/05/19 04:21
2018/05/19 10:33
2018/05/19 12:37 編集