Unity視線アプリscene移動② スタート画面で背景色を決めておく
タイトルの内容のことをしたいと思います。
まず、同一シーンで背景色を値によって変える
スクリプトを作りました。
[Unity] Colorクラスに名前付きで備わっている色の一覧 - JoyPlotドキュメント
こちらを参考に名前で指定できるカラーの種類を全部入れてみました。
Main Cameraにアタッチしたスクリプトです。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MainCamera : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
int colornum = 7;
//switch文
switch (colornum)
{
case 1:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.white;
break;
case 2:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.black;
break;
case 3:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.gray;
break;
case 4:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.green;
break;
case 5:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.blue;
break;
case 6:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.cyan;
break;
case 7:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.yellow;
break;
default:
GetComponent<UnityEngine.Camera>().backgroundColor = Color.magenta;
break;
}
}
// Update is called once per frame
void Update()
{
}
}
ここでは、 int colornum = 7 で指定しているので黄色の背景になります。
この数字をスタート画面から持ってこられないかな?と考えています。
Unityでシーンをまたいで値を保持する | ジョイタスネット (joytas.net)
↑こちらを参考に作りました。
出来ました。
スタート画面のボタンにアタッチしたスクリプトです。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class OpenButton : MonoBehaviour
{
public static int colornum = 6;
void Update()
{
if (Input.GetKeyDown(KeyCode.UpArrow))
{
colornum = 4;
}
}
public void OnClickStartButton()
{
SceneManager.LoadScene("ecard0.2");
}
}
試しに、初期値を6にしています。
シアンです。
上矢印をここで押したら4=グリーンになります。
先ほどのMainCameraのswitchのところを
//switch文
switch (OpenButton.colornum)
{
と、しました。
これだけで出来ました。
矢印キーを押さず、そのまま移動
上矢印を押してから移動