ここから本文です

回答受付終了まであと6日 回答を投稿すると知恵コイン15枚が追加されます

Unityについての質問です。 今現在、Unityでタイマーアプリの制作を行っていま...

アバター

ID非公開さん

2018/9/1917:00:02

Unityについての質問です。

今現在、Unityでタイマーアプリの制作を行っています。

実現したい動作としては、
タイマーシーン内にある+ボタンとーボタンで時間を設定、スタートボタンを押すとカウントダウンが開始、終了後にグラフシーンへ移動すると、グラフシーン内にある折れ線グラフに設定した時間が記録されている というものです。

タイマー機能は完成しており、グラフのあるSceneへ設定した時間(変数)を渡すこともできているのですが、シーンを切り替えた時に記述されず、困っています。

設定した時間はグラフシーンに渡せているので、グラフシーン内にグラフに記述するボタン(タイマーシーンから設定した時間を受け取り、グラフに線を引く)を置き、それをクリックすると上手く記述されます。

理想の動き方の例としては、『10秒間のカウントダウンが終わった後にグラフシーンに遷移すると、すでにグラフの10秒の位置に線が引かれている(グラフに反映されている)』という動作なのですが、シーン遷移をするプログラムの中にグラフに記述するプログラムを書いても、グラフには線が引かれません。



また、Unityの仕様上(?)、シーンの遷移を行うと初期化されてしまうようで、タイマーシーンでカウントダウン→グラフシーンにてグラフに記述、一度別シーンに移動後、グラフシーンに戻るとグラフが初期化されてしまっています。

調べたところ、「DontDestroyOnLoad」を使えばいい等の記載がありましたが、グラフをgameobjectに入れて色々と試してみましたが、再生が出来なくなる、グラフに何も記述されなくなる 等の不具合が起こってしまい、何が原因なのかも分からず途方に暮れています。

以上のことを踏まえ、教えていただきたいことは、
・シーン遷移を引き金として、遷移後のシーンに特定のプログラムを実行させる方法(VS2015のWindows form applicationを例に出すと、フォームのタブをクリックした時に生成される『private void Form1_Load(object sender, EventArgs e)』のような、シーンの表示と同時に行われる処理の記述方法)

・一度グラフに書いた線を消さない方法(シーンの行き来をしてもシーンが初期化されない方法)

の2点です。

独学でUnityを学び始めて5か月程度の為、右も左も分からずに困っています。
文章に起こすのが難しく、分かりづらい箇所があるかと思いますが、質問を頂ければ出来る限り補足にてお答えさせていただきたいと考えています。
長文・乱文申し訳ありません。
どうかご教授よろしくお願いいたします。

開発環境
Windows10
Unity 2018.2.7f1 Personal
Dynamic Line Chart(折れ線グラフを記述する為のasset)

開発言語
C#

閲覧数:
33
回答数:
1
お礼:
500枚

違反報告

回答

1〜1件/1件中

wis********さん

2018/9/1919:06:41

シーン遷移でなく、
タイマー画面
グラフ画面
でそれぞれGameObjectに入れてまとめておき、
SetActiveで表示非表示するのが楽かとは思います。

シーンでやりたい場合はおっしゃる通り
DontDestroyOnLoadを使い、シーンを跨いでも消えないオブジェクトを作り、
そのオブジェクトに、グラフを描くのに必要なデータを保存しておいて、
グラフシーンに入った瞬間に、そのデータを使ってグラフを描きます。

シーン遷移した時、そのシーンにあるスクリプト全てのAwake,Startが呼ばれますので、そこでグラフを描く処理を実行すればいいと思います。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる