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

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

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

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

Q&A

解決済

2回答

2890閲覧

シーン間でのデータ渡し

Anet

総合スコア27

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

0グッド

0クリップ

投稿2015/06/18 10:33

using System;
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class TimeCounter : MonoBehaviour
{

[SerializeField] Image[] images = new Image[4]; [SerializeField] Sprite[] numberSprites = new Sprite[10]; private float latetime = 0; public float timeCount { get; set; } public float timeresult = 0; public float lateresult = 0; void Start() { SetTime(900); } void Update() { if(Input.GetKeyDown(KeyCode.Y)) { timeresult = timeCount; lateresult = latetime; FadeManager.Instance.LoadLevel("Result", 0.5f); } } public void SetTime(float time) { timeCount = time; StartCoroutine(TimerStart()); } void SetNumbers(int sec, int val1, int val2) { string str = String.Format("{0:00}", sec); images[val1].sprite = numberSprites[Convert.ToInt32(str.Substring(0, 1))]; images[val2].sprite = numberSprites[Convert.ToInt32(str.Substring(1, 1))]; } IEnumerator TimerStart() { while (timeCount > 0) { int sec = Mathf.FloorToInt(timeCount % 60); SetNumbers(sec, 2, 3); int minu = Mathf.FloorToInt((timeCount - sec) / 60); SetNumbers(minu, 0, 1); yield return new WaitForSeconds(1.0f); timeCount -= 1.0f; latetime += 1.0f; if (timeCount < 0) { timeCount = 0; } } TimeOver(); } void TimeOver() { timeresult = timeCount; lateresult = latetime; FadeManager.Instance.LoadLevel("Result", 0.5f); }

}

このスクリプトを使って時間管理をしているのですが、最後にlateresultとtimeresultを渡したいのですが、シーン間で受け渡しする場合GetComponent文を利用するとどうしても、GameObjectを使うということができなかったです・・・。

どうしたらできますか?

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

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

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

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

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

guest

回答2

0

自己解決

すいません・・・、その方法をやる前に「継承つかったらできるかな?」と中途半端な気持ちでやったらできました・・・・。質問するときはもっと詰まった時にしようと思います・・・。

MasaakiIrieさん、申し訳ありません・・・。そしてありがとうございました・・・。

投稿2015/06/18 12:02

Anet

総合スコア27

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

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

MasaakiIrie

2015/06/18 12:07

Unityはシーンが変わるとすべて消えるので、基本持ち越しはできない仕様です。
Anet

2015/06/19 06:40

timeresultとlateresultをpublic static floatに変えたのですが、これを使って呼びたい場合はどうしたらいいんですか?
Anet

2015/06/19 08:27

public static 引数を作った後に シーン遷移後のスクリプトにスクリプト名.引数と打ったらその引数を引き継ぐことができました! あとはその数値を使ってスコアを画像を用いて表示するだけになりました。
guest

0

GameObjectかプリファレンスで渡したらだめですか?

投稿2015/06/18 11:46

MasaakiIrie

総合スコア1021

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問