シーンの背景色を変更する

ページ更新日 :
ページ作成日 :

検証環境

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 コンストラクタに任意の数値を設定したりあらかじめ定義されている redblue を設定することもできます。

動作確認

実行して色が変わるか確認してみてください。