Как видно из названия, я пытаюсь настроить ползунок пользовательского интерфейса, чтобы игрок мог настроить некоторые параметры постобработки (в частности, экспозицию и температуру) во время игры.
Чтобы поднять скорость:
Я считаю, что мой лучший способ - попытаться адаптировать то, чему я научился из этого урока, при создании слайдера громкости звука: https://www.youtube.com/watch?v=YOaYQrN1oYQ&t=122s
Это код, который я до сих пор собирал вместе:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BrightnessSlider : MonoBehaviour {
public void SetBrightness (float brightness)
{
Debug.Log(brightness);
}
}
Конкретные проблемы, с которыми я сталкиваюсь в определенных частях учебника:
- 2: 07 Для функции ползунка в учебном пособии устанавливается динамическое плавание, соответствующее заданному ими пользовательскому методу (SetVolume). Когда я пытаюсь настроить свою собственную функцию с помощью пользовательского метода (SetBrightness), я не могу ее найти. Я также не уверен, нужно ли мне устанавливать другой объект вместо холста для этого шага.
- 3: 47 В учебном пособии они выставляют параметр для тома, чтобы им можно было манипулировать с помощью сценария, но я не знаю, какой эквивалент будет для постобработки.
Кстати, я смог следовать этому уроку, чтобы создать свой собственный аудио слайдер, и он работал без проблем.
И последнее: я открыл скрипт для профиля постобработки и нашел тип переменной, который мне нужен или, по крайней мере, был бы уместен: ColorGradingModel, но я, честно говоря, понятия не имею, что делать с этой информацией .
Обновление от 09 июля 2018 года
С тех пор я просматривал код @ Нола, и кто-то другой посмотрел на него и помог мне с этим. В настоящий момент функциональность ползунка (не уверен, что это правильная терминология, но я придерживаюсь этого) настраивается через поле «On Value Changed» в инспекторе, но на самом деле он не управляет / не изменяет значения яркости. У меня был кто-то еще (кто гораздо более квалифицирован, чем я), чтобы посмотреть на это со мной. Кажется, что это должно работать так, как они его настроили, но что-то теряется при переводе между методом и ползунком.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.PostProcessing;
using UnityEngine.UI;
public class BrightnessSlider : MonoBehaviour
{
public Slider slider;
public PostProcessingProfile Default;
private ColorGradingModel cgm;
private void Start()
{
//I haven't been able to get this to not return some sort of error,
//and I'm not even sure of its usefulness.
//I've been keeping it commented out for the most part.
Default.profile.TryGetSettings(out cgm);
}
public void SetBrightness(float brightness)
{
ColorGradingModel.Settings settings = cgm.settings;
settings.basic.postExposure = brightness;
cgm.settings = settings;
Debug.Log("Brightness is: " + brightness); //For testing purposes
}
}