Beispiel #1
0
 void ClearOverrideVolum()
 {
     overridePPState = OverridePPState.None;
     if (overrideVolum == null)
     {
         return;
     }
     Object.Destroy(overrideVolum.profile);
     Object.Destroy(overrideVolum.gameObject);
 }
Beispiel #2
0
    void InitOverrideVolum()
    {
        overridePPState = OverridePPState.Init;
        var mainLayer = cam.GetComponent <PostProcessLayer>();

        if (mainLayer == null)
        {
            return;
        }
        List <PostProcessVolume> vols = new List <PostProcessVolume>();

        PostProcessManager.instance.GetActiveVolumes(mainLayer, vols, true, true);
        if (vols == null || vols.Count < 1)
        {
            return;
        }
        foreach (var v in vols)
        {
            if (v.sharedProfile.HasSettings <ColorGrading>())
            {
                mainVolum = v;
                break;
            }
        }

        if (mainVolum == null)
        {
            return;
        }
        var grading = mainVolum.sharedProfile.GetSetting <ColorGrading>();

        overrideVolum = new GameObject("[OverrideVolum]").AddComponent <PostProcessVolume>();
        overrideVolum.gameObject.layer = mainVolum.gameObject.layer;
        overrideVolum.isGlobal         = true;
        overrideVolum.priority         = mainVolum.priority;
        overrideVolum.weight           = 0f;
        overrideVolum.profile          = CustomCopyProfile(mainVolum.sharedProfile);
    }