シーンの背景色を変更する
ページ更新日 :
ページ作成日 :
検証環境
- Windows
-
- Windows 11
- Unity エディター
-
- 2020.3.25f1
- 入力システムパッケージ
-
- 1.2.0
この Tips の前提設定
この Tips の説明の前提として以下の設定を事前に行っています。
シーンの背景色について
Unity におけるシーンの背景色はシーンが持っているわけではなくカメラの設定になります。
ヒエラルキーから Main Camera
を選択するとカメラのプレビューと同時に背景色も表示されます。
背景色の変更について
Camera コンポーネントに「背景」があるのでそこから変更できます。
プログラムから背景色を変更する
ボタンをクリックしたらプログラムを動かし背景色を変更してみます。 ボタンクリック時の処理の動かし方については Button の Tips にあるのでそちらを参照してください。 ここではプログラムのみ説明します。
using System.Linq;
using UnityEngine;
public class ButtonEvent : MonoBehaviour
{
public void OnClick()
{
// カメラコンポーネントを取得
var cameraObject = gameObject.scene.GetRootGameObjects().FirstOrDefault(obj => obj.GetComponent<Camera>() != null);
var camera = cameraObject.GetComponent<Camera>();
// 背景色を変更
camera.backgroundColor = new Color(0.3f, 0.0f, 0.1f);
}
}
カメラの背景色を変更することになるので最初にカメラコンポーネントを取得します。
あらかじめカメラオブジェクトにスクリプトをアタッチしたり、フィールドとしてカメラを持っていればコードはもう少し短くなりますが、
今回は gameObject
に紐づいている scene
から検索して参照しています。
最終的にカメラコンポーネントを取得できるのであればどのようなコードでも問題ありません。
Camera
コンポーネントを取得したら backgroundColor
プロパティに Color
をセットして色を決定します。
Color
コンストラクタに任意の数値を設定したりあらかじめ定義されている red
や blue
を設定することもできます。
動作確認
実行して色が変わるか確認してみてください。