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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

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

Q&A

解決済

2回答

1490閲覧

Unityのシーン移行

sakura-1208

総合スコア4

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

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

0グッド

0クリップ

投稿2019/08/15 13:08

編集2019/08/15 13:25

前提・実現したいこと

Unityでシーン移行したいです。

発生している問題・エラーメッセージ

他のスクリプトからLifeという変数を参照して(参照というのでしょうか…)次のシーンに移らせたいのですが無反応です。触り始めたばかりでわからないことだらけなので、どなたかわかる方に教えていただきたいです。

該当のソースコード

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class GameManager : MonoBehaviour { public GameObject obj, Lifeobj; public Text scoreText; public int score; public LifeCount Lcount; public string ClearScene, BadScene; // Start is called before the first frame update void Start() { scoreText = obj.GetComponent<Text>(); score = 0; scoreText.text = "Score:" + score; } // Update is called once per frame void Update() { score += 50; ShowScore(); Lifeobj = GameObject.Find("Lifeobj"); Lcount = Lifeobj.GetComponent<LifeCount>(); if(Lcount.Life == 10) if(score > 230000) { SceneManager.LoadScene("ClearScene"); } else { SceneManager.LoadScene("BadScene"); } } public void ShowScore() { scoreText.text = "Score:" + score; } }

試したこと

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

fiveHundred

2019/08/15 13:12

- 「うまくいきません」では状況が分かりません。エラーが出るとか、無反応だとか、詳細を記載してください (エラーの場合はその内容もコピペで記載してください) - コードは「```」×2の中に記載してください
sakura-1208

2019/08/15 13:26

失礼しました。ありがとうございます。
guest

回答2

0

ベストアンサー

恐らくシーン名のタイプミスか、移動先のシーンがビルドに含まれていないのが原因だと思います。
エディター左上のFileからBuild Settings=>Add Open Scenes
を押して移動先のシーンをビルドに追加してみてください。

あと、Consoleウィンドウは表示していますか?シーン名が見つからない、とかビルドに含まれてない、とか言った趣旨のエラーがConsoleウィンドウに恐らく表示されていると思います。

投稿2019/08/15 16:07

Ram.Type-0

総合スコア424

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

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

sakura-1208

2019/08/16 02:49

ご回答ありがとうございます。Lifeの値がうまく反映されていなかったようなので、そこを改良しようと思います。 consoleウィンドウでエラーを確認するということを初めて知ったので、勉強.になりました。 本当にありがとうございます。
guest

0

C#

1 if(Lcount.Life == 10) 2 if(score > 230000) 3 { 4 SceneManager.LoadScene("ClearScene"); 5 } 6 7 else 8 { 9 SceneManager.LoadScene("BadScene"); 10 }

上記は以下と同等です

C#

1 if(Lcount.Life == 10) 2 { 3 if(score > 230000) 4 { 5 // ライフが10で、スコアが230000より大きいとき 6 SceneManager.LoadScene("ClearScene"); 7 } 8 else 9 { 10 // ライフが10で、スコアが230000以下のとき 11 SceneManager.LoadScene("BadScene"); 12 } 13 }

「ライフが10」でないと、いずれのシーンチェンジも行われないため、無反応になっているのだと思います。

投稿2019/08/15 13:50

fiveHundred

総合スコア9801

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

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

sakura-1208

2019/08/15 14:26

ご回答ありがとうございます。。プレイヤーと敵がぶつかると、Life++ となるようにしていています。体力が10個あるという風に考えて いるので、10回ぶつかってLifeの値が10になったときにシーン移行したいのです…。 (Lcount.Life <= 230000)としても無反応でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問