視線の注視時間を後から入力する② 前回の注視時間を記憶して起動時に表示する
続きです。
InputFieldのinspectorを一部変えました
小数の数字のみ受け付けるようにしています。
こちら↓を見れば、今後悩むことは無さそうです。
【Unity】Input Fieldの入力形式を制限する | ねこじゃらシティ (nekojara.city)
play.csに
public class play : MonoBehaviour
{
・・・・・
//何秒見ていたら音を鳴らすかを取得するのに必要
public GameObject inputfield;
InputText inputtext;
//何秒見ていたら音を鳴らすかを取得するのに必要
・・・・・
private void Start()
{
・・・・・
//何秒見ていたら音を鳴らすかを取得するのに必要
inputfield = GameObject.Find("InputField");
inputtext = inputfield.GetComponent<InputText>();
//何秒見ていたら音を鳴らすかを取得するのに必要
・・・・・
if (notmiterutime == 0) //見ているあいだ (見ていない時間がカウントされていない)
{
if (miterutime < inputtext.num && miterutime != 0) //見ている時間が規定時間を超えてない
{
//+++++++++++++++++++++++++++++++++++++++++++++@@
// Miteimasu = 1; //見ているが時間が足りてない
//+++++++++++++++++++++++++++++++++++++++++++++@@
gameObject.GetComponent<Renderer>().material.color = Color.magenta;
}
else if (miterutime >= inputtext.num) //見ている時間が規定時間を超えた
{
これぐらいを変更して、うまく行きました。
次は、これを保存できるようにします。
以前の記事
Unity 画像サイズの変更③ 値を保存 素晴らしいアセットと位置を動かす - 支援機器やアプリなどのメモ (hatenablog.com)
このやり方が使えるかな?
・・・
出来ました。
なんて素敵。
サイトに記載されていた
最初に
エディタ再生中に変更した値をエディタ停止後もそのまま保持する属性【Unity】【エディタ拡張】【属性】 · GitHub
こちらからスクリプトを作成する過程は
前回のチャレンジで既に実施済みでした。
そして
public class InputText : MonoBehaviour
{
・・・・
[PersistentAmongPlayMode] //前回の視線入力の時間を記憶するために必要
public float num;
と、書き加えただけです。
後は
public class InputText : MonoBehaviour
{
・・・・
//前回の視線入力の時間をinputfieldに表示するのに必要
private InputField inputFieldbox;
・・・・
void Start()
{
//前の値を表示する
string strnum = num.ToString(); //numはfloatなので、stringに変える必要がある
inputFieldbox = GetComponent<InputField>();
inputFieldbox.text = strnum;
//前の値を表示する
と書き加えると
このように前回の数字が入力された状態で起動されました。
参考にさせていただいたのは以下です。
float型をstring型に変換できない (teratail.com)