Unity視線アプリscene移動⑤ スタート画面からも終了&背景色によっては文字が見にくい。
スタート画面(シーン名 Open)を新しいシーンで作ったら、
そのシーンではEscボタンを押しても終了できませんでした。
シーンごとに
void Update()
{
//Escキーを押したらアプリを閉じる
if (Input.GetKey(KeyCode.Escape))
{
Application.Quit();
}
}
がいるようなので、
Openシーンに貼りついているボタン(スタートと書いてあるボタン)
のオブジェクトにアタッチしている
OpenButtonスクリプトをに上記のコードを貼り付けました。
↓ButtonにくっついているOpenButton.csの中に上記コードを貼り付けた。
あと、
こんな感じで、背景色によっては文字が読みにくいです。
背景が白だと全く見えません。
文字に常時、黒い背景でも付けたら良いのでしょうが、今回は
背景によって文字色を変えるということをやってみようと思います。
今回もお世話になったのはこちらの神サイト様です。
【Unity C#】テキストの色をスクリプトから変更 - プログラミング教室 フタバゼミ (futabazemi.net)
Hierarchyを見るとこれだけのtextがありました。
ecardシーンのMainCameraにアタッチしている
MainCamera.csのクラスの中に以下を入れました。
[SerializeField] Text kaenaimojihyojimitenaicolorText;
[SerializeField] Text keyhelpcolorText;
[SerializeField] Text mojihyoji;
[SerializeField] Text mojihyojimitenai;
[SerializeField] Text rokuonshitemasu1;
[SerializeField] Text rokuonshitemasu2;
[SerializeField] Text rokuonshitemasu3;
するとinspectorに、オブジェクトを入れる枠が出てきます。
この枠に↑のように、各々のオブジェクトをHierarchyから持ってきて入れました。
そして、
void Start()
{
kaenaimojihyojimitenaicolorText.color = new Color(255f, 255f, 255f, 1.0f); //スタート時の文字色は白
keyhelpcolorText.color = new Color(255f, 255f, 255f, 1.0f); //スタート時の文字色は白
mojihyoji.color = new Color(255f, 255f, 255f, 1.0f); //スタート時の文字色は白
mojihyojimitenai.color = new Color(255f, 255f, 255f, 1.0f); //スタート時の文字色は白
rokuonshitemasu1.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
rokuonshitemasu2.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
rokuonshitemasu3.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
//switch文
switch (ColorChanger1.colornum)
{
case 0:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.white;
kaenaimojihyojimitenaicolorText.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
keyhelpcolorText.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
mojihyoji.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
mojihyojimitenai.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
break;
case 1:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.black;
rokuonshitemasu1.color = new Color(255f, 255f, 255f, 1.0f); //背景が黒の時は録音中・・・色は白
rokuonshitemasu2.color = new Color(255f, 255f, 255f, 1.0f); //背景が黒の時は録音中・・・色は白
rokuonshitemasu3.color = new Color(255f, 255f, 255f, 1.0f); //背景が黒の時は録音中・・・色は白
break;
case 2:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.gray;
break;
case 3:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.green;
kaenaimojihyojimitenaicolorText.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
keyhelpcolorText.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
mojihyoji.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
mojihyojimitenai.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
break;
case 4:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.blue;
break;
case 5:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.cyan;
kaenaimojihyojimitenaicolorText.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
keyhelpcolorText.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
mojihyoji.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
mojihyojimitenai.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
break;
case 6:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.yellow;
kaenaimojihyojimitenaicolorText.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
keyhelpcolorText.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
mojihyoji.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
mojihyojimitenai.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //文字色を黒にする
break;
default:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.magenta;
break;
}
}
このように、背景色によって文字色を白か黒か変えるようにしました。
例えば黄色だと
黒だと
このように文字色が変わります。
録音中・・・の文字も
基本は黒ですが、↓
背景が黒のときのみ白にしました。