指定した注視時間だけ見ると
音楽が鳴るように変えることが出来ました。
今度は、この時間を
起動後に指定できるようにしたい。
ということでやってみます。
・・・
あちらこちらのサイトを参考にしました。
【Unity C#】ボタンを押して入力テキストを表示させる (futabazemi.net)
UnityでInputFieldのテキストを取得する – Pelican Philosophy (peliphilo.net)
unityでInputFieldを使って数字を入力プログラム... - Yahoo!知恵袋
【Unity】全てのInputFieldが空でなければボタンを表示する (suzukaprogrammer.com)
このようになりました。
例えば、2.6とtextfieldに入力してボタンを押すと、
上のtextに文字が表示されます。
この後、ボタンを再度押したら
スタートできるようにしたいと思います。
また
空っぽでボタンをおしたら
入力を促すテキストを表示させて、
このときはボタンを押せないようにしようと思います。
ボタンに表示されている文字の切り替えをしました。
【Unity】Buttonを押した時にテキストを切り替える方法 - テクノモンキー(サブ) (hateblo.jp)
こちらが大変分かりやすかったです。
後、ボタンの色の変化はこちらが一目瞭然でした。
【Unity】【uGUI】状態によってボタンの色を変える - ヒナタ製作所 (hatenablog.com)
注視時間を入れなければボタンを押せなくしたかったので
それは↓こちらで一発でした!
【Unity】ボタンを非活性にする方法 | Unity Note (naoya-ono.com)
新しいことをいろいろやったので詳しく残します。
Hierarchyに加えたのは
UIの
・InputField
・Text
・Button
例えばTextならこうやって選びます。
Textという言葉をコード上いろいろ使うので
(ボタンの文字もボタンのtextだし・・・)
私はゴチャゴチャになってしまうので
オブジェクト名を大きく変えて
「mojihyoji」にしました。
Assetsに
を作り、
HierarchyのInputFieldにくっつけました。
中身はこうです。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; //UIを扱う
public class InputText : MonoBehaviour
{
//ボタンを押せるようにしたり押せ無くしたり、ボタンの文字を変えたりする
public GameObject button;
public float num;
//InputFieldの上のtextに何を表示するか
public Text textarea; //テキストエリア
Text buttonText = null; // ボタンのテキスト
void Start()
{
button = GameObject.Find("Button");
// ボタンのテキストコンポーネントをキャッシュ
buttonText = button.GetComponentInChildren<Text>();
//最初はボタン押せなくしてある
button.GetComponentInChildren<Text>().text = "入力するまで\n押せません";
button.GetComponent<Button>().interactable = false;
//最初に入力を促す文字を表示
textarea.text = "注視時間を入力してね";
}
//InputFieldに文字を入れるたびに呼び出される
public void ValueChange(string text) //InputFieldに入れた文字を text として string型で扱っていく
{
if (text != "") //もしInputFieldが空でないなら
{
//ボタンをアクティブにして表示を変える
button.GetComponent<Button>().interactable = true;
button.GetComponentInChildren<Text>().text = "これでOK";
//後で入力したtextをfloat型の数値として使いたい
num = float.Parse(text);
//文字表示を以下のように変える
textarea.text = text + "秒見てね";
Debug.Log("数字" + num);
}
else //もしInputFieldが空なら
{
textarea.text = "空だよ注視時間を入力してね";
//ボタンを押せなくする
button.GetComponentInChildren<Text>().text = "入力するまで\n押せません";
button.GetComponent<Button>().interactable = false;
}
}
public void Buttonoshita()
{
Debug.Log("入力数字はこれ" + num);
Debug.Log("1を足すと" + (num+1));
}
}
HierarchyでInputFieldを選び、
inspectorを見ます。
ここ、変えました。
途中でいろいろ触ったときに、
全然うまくいかなくなってよく見たら
↓これを選んでました。これは間違い。
こっちが正しい
参考サイト様にちゃんと
こっちと分かるように書いてくれていたのに
触っているうちに思い込みでダメな方を選んでました。
後、スクリプトのとこはこうなってます。
今度はボタンです。
inspectorは
On Click()のところは
ボタンを押したときに
public void Buttonoshita()
{
Debug.Log("入力数字はこれ" + num);
Debug.Log("1を足すと" + (num+1));
}
が働くようにしています。
ちゃんと数字で取得できているか確認の為足し算をしています。
成功していました。
colorのところは好きに入れました。
触らなくても良いのですが、色が変わった方が分かりやすそうなので。
一旦、ここまで。