Unityを独学で勉強して1週間程の者です。
現在、Unityで2Dの横スクロールゲームを作っています。
そこで、1.ゲームスタートの画面 2.ゲーム画面 3.GAMEOVERの画面 4.ゴールの画面
の4つを作成し、同ヒエラルキー上でスクリプトで設定した特定の条件でシーン切り替えをしようとしています。
ですが、1→2は上手くいくものの、2→3が上手くいかず困っています。
イメージとしては、1→2→3→1...といったように繋がり、ゴールした時に4に切り替わる...といったものです。
以下に1~3のシーンに設定したスクリプトを記述しますので、改善点を頂けないでしょうか。
まだUnityの仕組みなども全然わかっておらず、ゲームの仕組みなどで間違っている点があればご教授いただければ幸いです。
1.スタート画面 マウス左クリックで2.ゲーム画面(SampleScene)に移動
using System.Collections.Generic; using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; public class start : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update(){ if (Input.GetMouseButtonDown (0)) { SceneManager.LoadScene ("SampleScene"); } } }
2.ゲーム画面(Player.cs) プレイヤーがgameoverzone接触で3へシーン移動
using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; public class Player : MonoBehaviour { public float flap = 550f; public float scroll = 10f; Rigidbody2D rb2d; private bool gameClear = false; void Start() { rb2d = GetComponent<Rigidbody2D>(); } void Update() { rb2d.velocity = new Vector2(scroll, rb2d.velocity.y); if (Input.GetKeyDown(KeyCode.Space)) { rb2d.velocity = Vector2.zero; rb2d.AddForce(Vector2.up * flap, ForceMode2D.Impulse); } } void OnTriggerEnter2D(Collider2D col) { if(col.gameObject.name == "gameoverzone") { SceneManager.LoadScene("GAMEOVER"); } } }
3.ゲームオーバー画面 マウス左クリックで1.スタート画面へ移動
using System.Collections.Generic; using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; public class gameover : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (Input.GetMouseButtonDown (0)) { SceneManager.LoadScene ("GAMESTART"); } }
「デバッグしてください」という質問は推奨されていません。
「Debug.Log(〜);」などを用いて、自分で原因を絞り込んでください。
まぁ単純に考えるなら「衝突していない(OnTriggerEnter2Dが呼ばれていない)」か「if(col.gameObject.name == "gameoverzone")を満たしていない」か「GAMEOVERシーンがビルド設定に含まれていない(この場合エラーが出ます)」のどれかじゃないでしょうか。
回答1件
あなたの回答
tips
プレビュー