В редакторе на моей камере я добавил два компонента: слой после обработки и объем после обработки. В первом компоненте слой, который я изменил, на слой, который я добавил. PostProcessing. Во втором компоненте я установил для параметра Is Global значение true и добавил. один эффект на данный момент Depth Of Field
Теперь я хочу изменить и установить значения глубины фокусного расстояния с помощью скрипта. Поэтому я создал новый скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
public class PostprocessingEffects : MonoBehaviour
{
private PostProcessVolume postProcessVolume;
private DepthOfField depthOfField;
void Start()
{
postProcessVolume = GetComponent<PostProcessVolume>();
postProcessVolume.profile.TryGetSettings(out PostProcessEffectSettings depthOfFieldSettings);
depthOfField.focalLength.value = 1f;
}
}
Я получаю сообщение об ошибке на линии:
postProcessVolume.profile.TryGetSettings(out depthOfField);
На TryGetSettings и ошибка:
Тип «PostprocessingEffects» нельзя использовать в качестве параметра типа «T» в типе generi c или методе «PostProcessProfile.TryGetSettings (out T)». Не существует неявного преобразования ссылок из 'PostprocessingEffects' в 'UnityEngine.Rendering.PostProcessing.PostProcessEffectSettings'.
Пробовал также:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
public class PostprocessingEffects : MonoBehaviour
{
private PostProcessVolume postProcessVolume;
private DepthOfField depthOfField;
void Start()
{
postProcessVolume = GetComponent<PostProcessVolume>();
postProcessVolume.profile.TryGetSettings(out DepthOfField depthOfField);
depthOfField.focalLength.value = 1f;
}
}