Хотите контролировать оттенок сцены, используя UI Slider
Я использую инструмент постобработки, чтобы изменить цвета моей сцены (моя сцена включает в себя камеру AR, единственный основной компонент).
Моя цель - изменить цвет сцены с помощью ползунков. Инструмент позволяет мне делать это при его создании, но я хочу убедиться, что я разрешаю пользователю изменять цвет по своему выбору (пытаясь создать приложение для коррекции дальтонизма).
Например, если человек страдает от Deuteranopia и, скажем, смещение оттенка -35 частично позволяет ему видеть цвета, которые не были бы в случае другого человека с таким же типом дальтонизма, оттенок мог бы отложить.
Итак, я хочу, чтобы вы помогли в создании контроллера пакетов утилит для постобработки, который позволил бы мне управлять смещением оттенка с помощью пользовательского интерфейса.
Спасибо.
Как вы можете видеть моего инспектора здесь, я хочу иметь тот же элемент управления ползунка на моем холсте:
1 ответ
Как ты можешь это сделать?
- Сделать слайдер:
- Установите минимальное и максимальное значения на -255, 255 соответственно:
- Добавьте новый скрипт с именем "HueFromSlider":
- Добавьте этот код в скрипт:
using UnityEngine;
using UnityEngine.PostProcessing;
using UnityEngine.UI;
public class HueFromSlider : MonoBehaviour
{
public PostProcessingProfile profile; // A reference to the profile
ColorGradingModel model; // The color grading model
ColorGradingModel.Settings settings; // The color grading model settings.
public Slider slider; // A reference to the slider so that on start it goes back to were it was.
private void Start()
{
model = profile.colorGrading; // Set the model
settings = model.settings; // Set the settings
if (slider != null) // Set the slider back to what it was only if it has been referenced.
slider.value = settings.basic.hueShift;
}
public void ChangeHue(float hue)
{
settings.basic.hueShift = hue; // Set the hue in the settings
model.settings = settings; // Set the settings of the model
profile.colorGrading = model; // set the profile model to the model
}
}
- Создайте новый профиль постобработки, если у вас его нет: Перейдите в проект, щелкните правой кнопкой мыши и выберите "Создать"> "Профиль постобработки".
- В инспекторе перетащите профиль в сценарий и, при необходимости, в ползунок.
- В слайдере добавьте обратный вызов "On Value Changed" для "script">ChangeHue. Убедитесь, что вы выбрали его в качестве динамического поплавка. Это должно выглядеть так:
- Готово.
Или подготовленный мной пакет: https://drive.google.com/open?id=1coTuy2M5Jlrpvm-vOu3F3B_liddrA19t