質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.09%

2Dゲームでスライダーで画面全体の明るさを調整できるようにしたい

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 401

score 9

前提・実現したいこと

Unity初心者です。
2Dゲームを製作中なのですが、ゲーム画面上のスライダーで画面全体の明るさを調整できるようにしたいと考えています。
方法を調べたのですが、該当するものがなかなか出てきません。
何を導入して、どのようなスクリプトを記述すればよいでしょうか。
ご回答よろしくお願いいたします。

試したこと

フリーアセットのSimple LUT Adjusterを導入してメインカメラにアタッチし、インスペクターからBrightnessの値を変えられるようにしました。
しかしこの値をゲーム画面上のスライダーで変える方法がわからず困っています。
このアセットを使わない方法でも結構ですので、スライダーで画面全体の明るさを調整できる方法があればご教授いただけますと幸いです。
何卒よろしくお願い申し上げます。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • sakura_hana

    2020/03/04 14:37

    「スライダーを使って変数の値を変える」「画面の明るさを変数で指定する(Brightnessにスライダーで設定した変数の値を入れる)」
    この2つに切り分けて調べればすぐ出ると思います。(一度に全部にやろうとせず、ひとつひとつ理解していくと今後の為にもなります)

    キャンセル

  • haru325

    2020/03/04 23:21

    申し訳ございません。
    質問の書き方がとても悪かったうえに、未熟すぎて恥ずかしかったために途中まで書いたスクリプトを乗せずに投稿してしまいました。
    そして今冷静になってスクリプトを見直してみたら自己解決いたしましたのでこの投稿をした後にそちらも投稿させていただきます。
    お昼ごろ困っていたときは、スライダーを使って変数の値を変えることはできたのですが自分が作ったスクリプトからSimple LUTのBrightness変数にアクセスできず(Simple LUTがname spaceで区切ってあっただけでした)、どうやって値を渡したらいいかがわからずにおりました。
    それを素直にお聞きすればよかったものを、なんとなくもっと良い方法があるのではないかと思い漠然としすぎた質問をしてしまいました。
    Unityは独学で勉強し始めたばかりで、またインターネットで質問をさせていただくこと自体にも不慣れだったためにこのようなことをしてしまいました。
    深く反省しておりますので、今回は何卒お許しいただけますと幸いです。
    本当に申し訳ございませんでした。
    また、このような悪い質問にご指摘を下さり誠にありがとうございました。

    キャンセル

回答 3

check解決した方法

+1

申し訳ございません。
質問の書き方がとても悪く、酷く漠然とした質問をしてしまいました。
また、未熟すぎて恥ずかしかったために途中まで書いたスクリプトを乗せずに投稿してしまいました。
深く反省しておりますので、何卒ご容赦くださいますようお願い申し上げます。

お昼ごろ困っていたときは、スライダーを使って変数の値を変えることはできたのですが自分が作ったスクリプトからSimple LUTのBrightnessにアクセスできず、どうやって値を渡したらいいかがわからずにおりました。
今冷静になってスクリプトを見直したところ、アセットのスクリプトSimple LUTがname spaceで区切ってあることに気が付きました。
そこで下記のように自分が作ったスクリプトにもnamespace DigitalRuby.SimpleLUTの記述を入れ、スライダーの値をSimple LUTのBrightnessに渡したところ画面上で明るさを調整できるようになりました。

Unityにもインターネットで質問をすることにも慣れておらずこのような良くない質問をしてしまいましたが、今後はできるだけ具体的に質問内容を書いてまいりますので、今回ばかりはご容赦くださいますようお願い申し上げます。
ご回答、コメントくださった方全員をベストアンサーに選びたいのですがそれはできませんので、こちらでお礼とお詫びを申し上げます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

namespace DigitalRuby.SimpleLUT
{
    public class BrightnessController : MonoBehaviour
    {
        Slider slider;
        SimpleLUT simpleLUT;

        // Start is called before the first frame update
        void Start()
        {
            slider = GetComponent<Slider>();
            simpleLUT = FindObjectOfType<SimpleLUT>();


        }

        // Update is called once per frame
        void Update()
        {

        }

        public void changeBrightnessValue()
        {
            simpleLUT.Brightness = slider.value;
        }
    }
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

具体的にスクリプトは書きませんが、
まずSliderの値を受け取れるスクリプトを書きます。
次に、Simple LUT Adjusterやライトの明るさの要素をスクリプトからいじれるようにします。
そしてライトの明るさを変えるの変数や関数の中に、Sliderの値を代入することで、
やりたいことが実現できると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/03/04 23:25

    申し訳ございません。
    質問の書き方がとても悪かったうえに、未熟すぎて恥ずかしかったために途中まで書いたスクリプトを乗せずに投稿してしまいました。
    そして今冷静になってスクリプトを見直してみたら自己解決いたしましたのでこの投稿をした後にそちらも投稿させていただきます。
    お昼ごろ困っていたときは、スライダーを使って変数の値を変えることはできたのですが自分が作ったスクリプトからアセットのスクリプトSimple LUTのBrightness変数にアクセスできず(Simple LUTがname spaceで区切ってあっただけでした)、どうやって値を渡したらいいかがわからずにおりました。
    それを素直にお聞きすればよかったものを、なんとなくもっと良い方法があるのではないかと思い漠然としすぎた質問をしてしまいました。
    Unityは独学で勉強し始めたばかりで、またインターネットで質問をさせていただくこと自体にも不慣れだったためにこのようなことをしてしまいました。
    深く反省しておりますので、今回は何卒お許しいただけますと幸いです。
    本当に申し訳ございませんでした。
    また、このような悪い質問にご指摘を下さり誠にありがとうございました。

    キャンセル

  • 2020/03/05 14:09

    いえ、解決できたのならよかったです。
    制作・学習頑張ってください!

    キャンセル

+1

UIの基礎はできていますか?
例えば、ボタンを配置して、そのボタンを押したとき、オブジェクトを出現させるということはできますか?
この辺が出来てないのなら、まずそのサンプル等をみて出来るようにしてください

Slider のつまみをいじった場合、OnValueChangedが呼び出されます
Brightnessの値をSliderのValueの値を入れるスクリプトをかいて、
OnValueChangedに入れれば出来るはずです

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/03/04 23:25

    申し訳ございません。
    質問の書き方がとても悪かったうえに、未熟すぎて恥ずかしかったために途中まで書いたスクリプトを乗せずに投稿してしまいました。
    そして今冷静になってスクリプトを見直してみたら自己解決いたしましたのでこの投稿をした後にそちらも投稿させていただきます。
    お昼ごろ困っていたときは、スライダーを使って変数の値を変えることはできたのですが自分が作ったスクリプトからアセットのスクリプトSimple LUTのBrightness変数にアクセスできず(Simple LUTがname spaceで区切ってあっただけでした)、どうやって値を渡したらいいかがわからずにおりました。
    それを素直にお聞きすればよかったものを、なんとなくもっと良い方法があるのではないかと思い漠然としすぎた質問をしてしまいました。
    Unityは独学で勉強し始めたばかりで、またインターネットで質問をさせていただくこと自体にも不慣れだったためにこのようなことをしてしまいました。
    深く反省しておりますので、今回は何卒お許しいただけますと幸いです。
    本当に申し訳ございませんでした。
    また、このような悪い質問にご指摘を下さり誠にありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.09%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る