UnityのC#で6倍の早さで時刻が進むゲームを作っています。
シーンが変わる直前に、PlayerPrefsで時・分を保存し、遷移したシーンで時・分を読み込み、テキストに表示するプログラムを書きたいのですが、うまく動きません。
時刻表示するプログラムは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TimeScript : MonoBehaviour
{
float minute; float hour; void Start() { minute = PlayerPrefs.GetFloat("Saveminute",45);//分を取得する(初期起動時は45) hour = PlayerPrefs.GetFloat("Savehour",7);//時を取得する(初期起動時は7) GetComponent<Text>().text = ((int)minute).ToString(); GetComponent<Text>().text = ((int)hour).ToString(); } void Update() { minute += Time.deltaTime/10;//変数minuteに経過時間を加算 if (minute > 60)//もし60分を過ぎたら時に1足して、分を0にする { hour++; minute = 0; } GetComponent<Text>().text = ((int)hour).ToString() + ":" + ((int)minute).ToString(); }
}
としていて各シーンに表示しています。
そしてシーン遷移時にトリガーに入ったら
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CityTrigger : MonoBehaviour {
float hour;
float minute;
void OnTriggerEnter(Collider hit) { //接触対象はPlayerか? if(hit.CompareTag("Player")){ minute = PlayerPrefs.GetFloat("Saveminute",minute); hour = PlayerPrefs.GetFloat("Savehour",hour); PlayerPrefs.SetFloat("Saveminute",minute); PlayerPrefs.SetFloat("Savehour", hour); Application.LoadLevel("MainScene_City"); } }
}
としています。しかしこの場合の結果は、変数hour,minute両方とも0に戻ってしまいました。
どなたかご教授お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/01 15:52