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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

3回答

3139閲覧

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

haru325

総合スコア9

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/03/04 05:18

前提・実現したいこと

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

試したこと

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura_hana

2020/03/04 05:37

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

2020/03/04 14:21

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

回答3

0

自己解決

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

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

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

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6namespace DigitalRuby.SimpleLUT 7{ 8 public class BrightnessController : MonoBehaviour 9 { 10 Slider slider; 11 SimpleLUT simpleLUT; 12 13 // Start is called before the first frame update 14 void Start() 15 { 16 slider = GetComponent<Slider>(); 17 simpleLUT = FindObjectOfType<SimpleLUT>(); 18 19 20 } 21 22 // Update is called once per frame 23 void Update() 24 { 25 26 } 27 28 public void changeBrightnessValue() 29 { 30 simpleLUT.Brightness = slider.value; 31 } 32 } 33} 34

投稿2020/03/04 14:42

haru325

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

投稿2020/03/04 05:43

izmktr

総合スコア2856

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

haru325

2020/03/04 14:25

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

0

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

投稿2020/03/04 05:41

MasujimaRyohei

総合スコア422

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

haru325

2020/03/04 14:25

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

2020/03/05 05:09

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問