質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

482閲覧

unity 別シーンからゲームシーンに戻った時

yukidama

総合スコア11

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/08/14 10:07

編集2018/08/14 22:42

落ちてくるオブジェクトをキャッチするゲームを作っています。
10点になったらクリア表示とボタンが表示され落ちてくるオブジェクトも止まります。
ハイスコアもあり、こちらは得点に応じてシーンの移行をしています。
ボタンを押すと、シーン2になりそこからまたゲームシーンへ戻れます。
得点は保持してあります。
そのためか、シーン2からゲームシーンに戻った時、クリア表示とボタンが残ったままになっていて困っています。
どのようにすればいいでしょうか?
よろしくお願いいたします。

未熟で整ってないスクリプトですが載せておきます。

スクリプト修正しました。highscore10点で関数を呼びSetActiveをfalseにしていますがエラーは出ませんがボタンは出たままです。
appleも点数を保持しています

GameObject AppleText; int apple = 0; bool S; public Text HighScoreText; public Text AppleScoreText; int highScore; private string key = "HIGHSCORE"; private string key2 = "APPLE"; public void GetApple(){ if (S == true) { apple += 1; highScore += 1; } } public void GetSmileApple(){ if (S == true) { apple += 5; highScore += 5; } } public void GetMainasu(){ if (S == true) { apple -= 2; highScore -= 2; } } void Start () { AppleText = GameObject.Find ("Apple"); S = true; highScore = PlayerPrefs.GetInt (key, 0); HighScoreText.text = highScore.ToString () + "highScore"; apple= PlayerPrefs.GetInt (key2, 0); AppleScoreText.text = apple.ToString () + "apple"; } void Update () {

// AppleText.GetComponent<Text> ().text =
// apple.ToString () + "apple";

if (apple >= 10 ) { GameObject.Find ("Canvas").GetComponent<UIController> ().Clear (); GameObject.Find ("AppleGenerator").GetComponent<AppleGenerator> ().GetPlaynow (); S = false; GameObject.Find ("Buttonmap2").GetComponent<ButtonActive> ().GetButton (); } if (apple < 0) { apple = 0; } PlayerPrefs.SetInt (key, highScore); HighScoreText.text = highScore.ToString () + "highScore"; PlayerPrefs.SetInt (key2, apple); AppleScoreText.text = apple.ToString () + "apple"; if (highScore >= 20) { PlayerPrefs.DeleteAll (); } } public void GetHighScore(){ if (highScore >= 10) { GameObject.Find ("Buttonmap2").GetComponent<ButtonActive> ().GetButton2 (); SceneManager.LoadScene ("map1"); } if (highScore >= 20) { SceneManager.LoadScene ("map2"); } }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takezoux2

2018/08/15 08:35

コードはちゃんとインデントを整えて、コードブロックにしましょう。読みにくいと回答してくれる人が減ります。
takezoux2

2018/08/15 08:44

また、全てのコードも載せましょう。他の場所でのバグの可能性もあります。このコードから、クリア表示とボタンの表示制御をどこで行っているか、全くわからないので、問題がどこで発生しているかわかりません。
yukidama

2018/08/15 11:22

ご指摘いただき有難うございます。正しいインデントの揃え方も分かっておらずご迷惑をおかけしております。質問自体をもっと分かりやすく出来るように心掛けたいと思います。有難うございます。
guest

回答2

0

質問から原因は特定しきれないですが回答しておきます。早急に質問の修正をしたほうがいいです。

可能性1

appleの数が保存されているので、シーンに戻ってきた時にUpdate内でのapple>=10のチェックが実行され、再度クリア表示とボタンが実行されている

可能性2

GetHighScoreメソッドのappleの個数判定がelse ifになっていない

投稿2018/08/15 08:49

takezoux2

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukidama

2018/08/15 11:28

可能性1と2はその通りです。考えてみた結果、自分の技術が足らなくて進めていくことが難しくなりました。一旦やめて一からやり直します。考えていただき誠に有難うございます。ご指摘もいただき勉強になりました。有難うございます。
guest

0

ベストアンサー

if (highScore >= 20) {
//ここに消したいボタンを格
GameObject.Find ("Buttonmap2").setActive(false);
SceneManager.LoadScene ("Map2");
}

こんな感じでシーンに移動する前にオブジェクトを非アクティブにすれば良さそうです

投稿2018/08/14 15:02

kakeiteiya

総合スコア252

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukidama

2018/08/14 22:40

回答ありがとうございます! やってみたのですがエラーが出ました。 Object reference not set to an instance of an object GameDirector.Update () (at Assets/GameDirector.cs:79) スクリプトを修正しました。 関数を呼んでSetActiveをfalseにしてみたのですが、エラーは出ませんが表示された状態でした。 うまく生かせずすみません。 ありがとうございます!
yukidama

2018/08/14 22:52

エラーですが、Button2はスクリプトだけなので出たのかもしれません。Objectのボタン?にしてみましたがエラーはなく表示はされています。
kakeiteiya

2018/08/15 08:48

シーン上にButtonmap2というオブジェクトはありますかね? GameObject.Find ("Buttonmap2")でボタンのオブジェクトを取得しているはずなのですが、それが取得できていないというエラーっぽいです
yukidama

2018/08/15 11:34

Button2のオブジェクトはあります。オブジェクトやスクリプトがごちゃごちゃで自分ではどうにも出来なくなり、ここで考えてみてゲームを考え直そうと思います。未熟すぎました。考えていただき有難うございます。次への参考にさせていただきます。有難うございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問