Ejemplo n.º 1
0
        //クロスフェード用のイメージを作成
        protected bool TryCreateCrossFadeImage(float time, AdvGraphicInfo graphic)
        {
            if (LastResource == null)
            {
                return(false);
            }

            if (RawImage.texture == null)
            {
                return(false);
            }

            //前フレームのテクスチャを使ってクロスフェード処理を行う
            ReleaseTemporary();
            Material material = this.Material;

            this.copyTemporary = RenderTextureSpace.RenderTexture.CreateCopyTemporary(0);
            UguiCrossFadeRawImage crossFade = this.gameObject.AddComponent <UguiCrossFadeRawImage>();

            crossFade.Material = material;
            crossFade.CrossFade(
                copyTemporary,
                time,
                () =>
            {
                //テクスチャを破棄
                ReleaseTemporary();
                Destroy(crossFade);
            });
            return(true);
        }
Ejemplo n.º 2
0
 void ReleaseCrossFadeReference()
 {
     if (crossFadeReference != null)
     {
         DestroyImmediate(crossFadeReference);
         crossFadeReference = null;
     }
     if (crossFade != null)
     {
         crossFade.RemoveComponentMySelf();
         crossFade = null;
     }
 }
Ejemplo n.º 3
0
 void ReleaseTemporary()
 {
     if (this.copyTemporary != null)
     {
         RenderTexture.ReleaseTemporary(this.copyTemporary);
         this.copyTemporary = null;
     }
     if (CrossFade != null)
     {
         CrossFade.RemoveComponentMySelf();
         CrossFade = null;
     }
 }
Ejemplo n.º 4
0
        //前フレームのテクスチャを使ってクロスフェード処理を行う
        internal void StartCrossFadeImage(float time)
        {
            Texture lastTexture = LastResource.File.Texture;

            ReleaseCrossFadeReference();
            crossFadeReference = this.gameObject.AddComponent <AssetFileReference>();
            crossFadeReference.Init(LastResource.File);

            crossFade = this.gameObject.AddComponent <UguiCrossFadeRawImage>();
            crossFade.Timer.Unscaled = Engine.Time.Unscaled;
            crossFade.CrossFade(
                lastTexture,
                time,
                () =>
            {
                ReleaseCrossFadeReference();
            }
                );
        }
Ejemplo n.º 5
0
        //前フレームのテクスチャを使ってクロスフェード処理を行う
        internal void StartCrossFadeImage(float time)
        {
            Texture lastTexture = LastResource.File.Texture;

            ReleaseCrossFadeReference();
            crossFadeReference = this.gameObject.AddComponent <AssetFileReference>();
            crossFadeReference.Init(LastResource.File);
            UguiCrossFadeRawImage crossFade = this.gameObject.GetComponentCreateIfMissing <UguiCrossFadeRawImage>();

            crossFade.CrossFade(
                lastTexture,
                time,
                () =>
            {
                ReleaseCrossFadeReference();
                crossFade.RemoveComponentMySelf();
            }
                );
        }