Exemple #1
0
    void Update()
    {
        if (silentError)
        {
            return;
        }

        CheckCamera();

        bool volumesBlendFinished = false;

        if (volumesBlending)
        {
            volumesBlendAmount            = (volumesBlendingTime - volumesBlendingTimeCountdown) / volumesBlendingTime;
            volumesBlendingTimeCountdown -= Time.smoothDeltaTime;

            if (volumesBlendAmount >= 1.0f)
            {
                volumesBlendAmount   = 1;
                volumesBlendFinished = true;
            }
        }
        else
        {
            volumesBlendAmount = Mathf.Clamp01(volumesBlendAmount);
        }

        if (blending)
        {
            BlendAmount            = (blendingTime - blendingTimeCountdown) / blendingTime;
            blendingTimeCountdown -= Time.smoothDeltaTime;

            if (BlendAmount >= 1.0f)
            {
                LutTexture      = LutBlendTexture;
                BlendAmount     = 0.0f;
                blending        = false;
                LutBlendTexture = null;

                if (onFinishBlend != null)
                {
                    onFinishBlend();
                }
            }
        }
        else
        {
            BlendAmount = Mathf.Clamp01(BlendAmount);
        }

        if (UseVolumes)
        {
            if (actualTriggerProxy == null)
            {
                GameObject obj = new GameObject(name + "+ACVolumeProxy")
                {
                    hideFlags = HideFlags.HideAndDontSave
                };
                if (TriggerVolumeProxy != null && TriggerVolumeProxy.GetComponent <Collider2D>() != null)
                {
                    actualTriggerProxy = obj.AddComponent <AmplifyColorTriggerProxy2D>();
                }
                else
                {
                    actualTriggerProxy = obj.AddComponent <AmplifyColorTriggerProxy>();
                }
                actualTriggerProxy.OwnerEffect = this;
            }

            UpdateVolumes();
        }
        else if (actualTriggerProxy != null)
        {
            DestroyImmediate(actualTriggerProxy.gameObject);
            actualTriggerProxy = null;
        }

        if (volumesBlendFinished)
        {
            LutTexture             = volumesLutBlendTexture;
            volumesBlendAmount     = 0.0f;
            volumesBlending        = false;
            volumesLutBlendTexture = null;

            effectVolumesBlendAdjust = 0.0f;
            currentVolumeEffects     = blendVolumeEffects;
            currentVolumeEffects.SetValues(this);
            currentExposure = blendExposure;

            if (blendingFromMidBlend && midBlendLUT != null)
            {
                midBlendLUT.DiscardContents();
            }

            blendingFromMidBlend = false;
        }
    }
	void Update()
	{
		if ( volumesBlending )
		{
			volumesBlendAmount = ( volumesBlendingTime - volumesBlendingTimeCountdown ) / volumesBlendingTime;
			volumesBlendingTimeCountdown -= Time.smoothDeltaTime;

			if ( volumesBlendAmount >= 1.0f )
			{
				LutTexture = volumesLutBlendTexture;
				volumesBlendAmount = 0.0f;
				volumesBlending = false;
				volumesLutBlendTexture = null;

				effectVolumesBlendAdjust = 0.0f;
				currentVolumeEffects = blendVolumeEffects;
				currentVolumeEffects.SetValues( this );

				if ( blendingFromMidBlend && midBlendLUT != null )
					midBlendLUT.DiscardContents();

				blendingFromMidBlend = false;
			}
		}
		else
			volumesBlendAmount = Mathf.Clamp01( volumesBlendAmount );

		if ( blending )
		{
			BlendAmount = ( blendingTime - blendingTimeCountdown ) / blendingTime;
			blendingTimeCountdown -= Time.smoothDeltaTime;

			if ( BlendAmount >= 1.0f )
			{
				LutTexture = LutBlendTexture;
				BlendAmount = 0.0f;
				blending = false;
				LutBlendTexture = null;

				if ( onFinishBlend != null )
					onFinishBlend();
			}
		}
		else
			BlendAmount = Mathf.Clamp01( BlendAmount );
		
		if ( UseVolumes )
		{
			if ( actualTriggerProxy == null )
			{
				GameObject obj = new GameObject( name + "+ACVolumeProxy" ) { hideFlags = HideFlags.HideAndDontSave };
				actualTriggerProxy = obj.AddComponent<AmplifyColorTriggerProxy>();
				actualTriggerProxy.OwnerEffect = this;
			}

			UpdateVolumes();
		}
		else if ( actualTriggerProxy != null )
		{
			DestroyImmediate( actualTriggerProxy.gameObject );
			actualTriggerProxy = null;			
		}
	}