実現したいこと
ゲームシーンで取ったコインをタイトル画面の増やしていきたい
現状
スコアと同じように記述しているので前回のとった数しか表示できない
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class GameController : MonoBehaviour { public Text scoreLabel; //ゲームステート enum State { Ready,Play,GameOver } State state; int score; int gem; public ShipController ship; public GameObject walls; public Text StateLabel; public GameObject appe; public Text GemLabel; // Start is called before the first frame update void Start() { //開始時にRedayステート開始 Ready(); } // Update is called once per frame void LateUpdate() { //ステートごとにイベント監視 switch (state) { case State.Ready://タッチしたらゲームスタート if (Input.GetButtonDown("Fire1")) GameStart(); break; case State.Play://シップが破壊されたらゲームオーバー if (ship.IsDead()) GameOver(); break; case State.GameOver://タッチしたらシーンをリロード if (Input.GetButtonDown("Fire1")) Reload(); break; } } void Update() { } void Ready() { state = State.Ready; //オブジェクトを無効にする ship.SetSteerActive(false); walls.SetActive(false); appe.SetActive(false); //ラベル更新 scoreLabel.text = "Score : " + 0; StateLabel.gameObject.SetActive(true); StateLabel.text = "READY"; GemLabel.text = "Gem : " + 0; } void GameStart() { state = State.Play; //オブジェクトを有効にする ship.SetSteerActive(true); walls.SetActive(true); appe.SetActive(true); //最初の入力だけをゲームコントローラーから渡す ship.Flap(); //ラベル更新 StateLabel.gameObject.SetActive(false); StateLabel.text = ""; } void GameOver() { state = State.GameOver; //シーン中のscrollObjectコンポーネントを探し出す ScrollObject[] scrollObjects = GameObject.FindObjectsOfType<ScrollObject>(); //シーン中のscrollObjectコンポーネント無効にする foreach (ScrollObject so in scrollObjects) so.enabled = false; //オブジェクト無効 appe.SetActive(false); //ラベル更新 StateLabel.gameObject.SetActive(true); StateLabel.text = "GAMEOVER"; //ハイスコアを更新 if (PlayerPrefs.GetInt("HighScore") < score) { PlayerPrefs.SetInt("HighScore", score); } PlayerPrefs.SetInt("Gem", gem); } void Reload() { //タイトルシーンを読み込み SceneManager.LoadScene("Title"); } public void IncreaseScore() { score++; //スコア更新 scoreLabel.text = "Score : " + score; } public void IncreaseGem() { gem++; GemLabel.text = "Gem : " + gem; ; } }
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class TitleController : MonoBehaviour { public Text highScoreLabel; public Text GemLabel; // Start is called before the first frame update public void Start() { //ハイスコアを表示 highScoreLabel.text = "High Score : " + PlayerPrefs.GetInt("HighScore"); GemLabel.text = "Gem : " + PlayerPrefs.GetInt("Gem"); } // Update is called once per frame void Update() { if (Input.GetButtonDown("Fire1")) { //ゲームシーン読み込み SceneManager.LoadScene("GameScene"); } } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/12/20 11:33
2019/12/20 11:36
退会済みユーザー
2019/12/20 12:14
退会済みユーザー
2019/12/20 12:17
2019/12/20 13:15
退会済みユーザー
2019/12/20 13:22
2019/12/20 13:34
退会済みユーザー
2019/12/20 13:51