●実現したいこと
別シーンからテキスト情報を取得したいです。
●作成しているゲーム
下の画像のような2Dゲームを作成しております。
1枚目:Stage1
2枚目:ClearScene
●具体的にしたいこと
写真1枚目Stage1シーンにてクリアした時に画面右上にクリアタイムが表示されます。
そのクリアタイムを写真2枚目の”残りタイム◯◯秒でした。”に数値を入れたいです。
●現在やっていること
テキスト情報を取得してスクリプトからテキストを操作することはできました。
写真1枚目のカウントダウン機能をTimeScript.csというファイルで管理しているので
おそらくそちらから値を引っ張ってくるのですがうまくできません。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class ClearSceneManager : MonoBehaviour 7{ 8 //テキスト情報の取得 9 public GameObject scoreText; 10 11 public void Update() 12 { 13 // オブジェクトからTextコンポーネントを取得 14 Text score_text = scoreText.GetComponent<Text>(); 15 // テキストの表示を入れ替える 16 score_text.text = "残りタイム5秒でクリアしました"; 17 } 18} 19
●TimeScript
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6 7 8public class TimeScript : MonoBehaviour 9{ 10 //時間制限 11 public float time = 60; 12 //タイトルに戻るボタンの配置 13 public GameObject backToTitleButton; 14 //コンティニューボタンの配置 15 public GameObject continueButton; 16 //ゲームオーバーテキストの配置 17 public GameObject gameOverText; 18 //爆発エフェクトの配置 19 public GameObject explosion; 20 //うんちエフェクトの配置 21 public GameObject unchi; 22 //SEの追加 23 AudioSource audioSource; 24 public AudioClip gameOverSE; 25 //便意Managerを呼び出す 26 public BeniManager beniManager; 27 28 29 void Start() 30 { 31 //初期値60を表示 32 //float型からint型へcastして、string型に変換して表示する 33 GetComponent<Text>().text = ((int)time).ToString(); 34 //ゲームオーバーテキストを非表示にしておく 35 gameOverText.SetActive(false); 36 //コンティニューボタンを非表示に 37 continueButton.SetActive(false); 38 //タイトルに戻るボタンを非表示に 39 backToTitleButton.SetActive(false); 40 //爆発エフェクトを非表示にしておく 41 explosion.SetActive(false); 42 //うんちエフェクトを非表示にしておく 43 unchi.SetActive(false); 44 //SE 45 audioSource = GetComponent<AudioSource>(); 46 47 48 } 49 50 //クリア判定用のフラグを追加 51 public bool isClear = false; 52 //PlayerScriptを読み込む 53 public PlayerManager playerManager; 54 55 56 57 58 void Update() 59 { 60 //フラグが更新された際の処理 61 if (isClear) 62 { 63 return; 64 } 65 66 //1秒に1ずつ減らしていく 67 time -= Time.deltaTime; 68 69 beniManager.UpdateUI(time); 70 71 72 //playerImageタグを取得 73 GameObject playerGameObject = GameObject.Find("Player"); 74 //playerImageタグを取得 75 GameObject playerImageGameObject = GameObject.Find("PlayerImage"); 76 77 if (time <= 0) 78 { 79 //ゲームオーバーテキストを表示する 80 gameOverText.SetActive(true); 81 //コンティニューボタンを表示する 82 continueButton.SetActive(true); 83 //タイトルに戻るボタンを表示する 84 backToTitleButton.SetActive(true); 85 //爆発エフェクトを表示する 86 explosion.SetActive(true); 87 //うんちエフェクトを表示する 88 unchi.SetActive(true); 89 //指定したオブジェクトを破壊 90 Destroy(playerImageGameObject); 91 //gameOverSEの追加 92 audioSource.PlayOneShot(gameOverSE); 93 //playerManagerクラスのフラグを更新する 94 playerManager.isGameOver = true; 95 } 96 97 if (time < 0) time = 0; 98 { 99 GetComponent<Text>().text = ((int)time).ToString(); 100 } 101 } 102 103} 104
うまくできないとはどうなるんでしょうか
回答1件
あなたの回答
tips
プレビュー