Post Processing Stack v1
This script updates the active post-processing profile with the AC-calculated depth-of-field focus distance.
To use:
- Download and install Unity's Post Processing Stack asset here
- Attach the Post Processing Behaviour component to AC's MainCamera, and enable Depth Of Field in the profile
- Attach the script below to the MainCamera as well
CopyDOF.cs:
using UnityEngine; using UnityEngine.PostProcessing; using AC; public class CopyDOF : MonoBehaviour { public float fStop = 2f; private PostProcessingProfile profile; private void Start () { profile = GetComponent <PostProcessingBehaviour>().profile; } private void Update () { DepthOfFieldModel.Settings dofSettings = profile.depthOfField.settings; dofSettings.focusDistance = KickStarter.mainCamera.GetFocalDistance (); dofSettings.aperture = fStop; dofSettings.useCameraFov = true; profile.depthOfField.settings = dofSettings; } }
Post Processing Stack v2
To use:
- Download and install Unity's Post Processing Stack v2 asset from Github here (Note: Installing via package currently causes problems)
- Attach the Post Processing Layer component to AC's MainCamera, and add a global Post Processing Volume in the scene that the MainCamera makes use of
- Add a Depth Of Field effect to the Post Processing Volume and override the Focus Distance property
- Attach the script below to the same GameObject and assign the Profile field
CopyDOFv2.cs:
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
using AC;
public class CopyDOFv2 : MonoBehaviour
{
[SerializeField] private PostProcessProfile profile;
private void Update ()
{
DepthOfField dofSettings = profile.GetSetting <DepthOfField>();
dofSettings.focusDistance.value = KickStarter.mainCamera.GetFocalDistance ();
}
}