コード例 #1
0
 public Texture2DOverrideData(Texture2D originalTexture2D, string texturepath, Texture2D overrideTexture2D)
 {
     if (texturepath != null)
     {
         this.texturepath = texturepath;
     }
     else
     {
         this.texturepath = string.Empty;
     }
     if (originalTexture2D != null)
     {
         this.instanceID   = originalTexture2D.GetInstanceID();
         this.originalname = originalTexture2D.name;
     }
     else
     {
         this.instanceID   = 0;
         this.originalname = string.Empty;
     }
     this.originalTexture2D = originalTexture2D;
     if (overrideTexture2D != null)
     {
         this.overrideID = overrideTexture2D.GetInstanceID();
     }
     else
     {
         this.overrideID = 0;
     }
     this.overrideTexture2D    = overrideTexture2D;
     this.cacheID              = 0;
     this.overrideTextureCache = null;
 }
コード例 #2
0
 protected void Swap(ref Texture value)
 {
     if (base.GetType() == typeof(Material))
     {
         try
         {
             if (value == null)
             {
                 if (this.overrideData.OriginalTexture2D != null)
                 {
                     Texture2DOverride.UnloadTexture2D(ref this.overrideData);
                 }
             }
             else
             {
                 Texture2D textured = value as Texture2D;
                 if (textured != null)
                 {
                     if (this.overrideData.OriginalTexture2D != null)
                     {
                         int instanceID = textured.GetInstanceID();
                         if ((this.overrideData.InstanceID == instanceID) || (this.overrideData.OverrideID == instanceID))
                         {
                             value = this.overrideData.OverrideTexture2D;
                             return;
                         }
                         Texture2DOverride.UnloadTexture2D(ref this.overrideData);
                     }
                     Texture2DOverride.LoadTexture2D(((Material)this).name, textured, out this.overrideData);
                     if (this.overrideData.OverrideTexture2D != null)
                     {
                         value = this.overrideData.OverrideTexture2D;
                     }
                 }
             }
         }
         catch (Exception exception)
         {
             IniSettings.Error("MaterialOverride:\n" + exception.ToString());
         }
     }
 }
コード例 #3
0
 private void SetOurOverrideTexture(ref U::UnityEngine.Texture value)
 {
     if (base.GetType() == typeof(RawImage))
     {
         try
         {
             if (value == null)
             {
                 if (this.overrideData.OriginalTexture2D != null)
                 {
                     Texture2DOverride.UnloadTexture2D(ref this.overrideData);
                 }
             }
             else
             {
                 U::UnityEngine.Texture2D textured = value as U::UnityEngine.Texture2D;
                 if (textured != null)
                 {
                     if (this.overrideData.OriginalTexture2D != null)
                     {
                         int instanceID = textured.GetInstanceID();
                         if ((this.overrideData.InstanceID == instanceID) || (this.overrideData.OverrideID == instanceID))
                         {
                             value = this.overrideData.OverrideTexture2D;
                             return;
                         }
                         Texture2DOverride.UnloadTexture2D(ref this.overrideData);
                     }
                     Texture2DOverride.LoadTexture2D(((RawImage)this).name, textured, out this.overrideData);
                     if (this.overrideData.OverrideTexture2D != null)
                     {
                         value = this.overrideData.OverrideTexture2D;
                     }
                 }
             }
         }
         catch (Exception exception)
         {
             IniSettings.Error("RawImageOverride:\n" + exception.ToString());
         }
     }
 }
コード例 #4
0
 protected static void Swap(ref Texture2D texture)
 {
     try
     {
         if (texture == null)
         {
             if (overrideData.OriginalTexture2D != null)
             {
                 Texture2DOverride.UnloadTexture2D(ref overrideData);
             }
         }
         else
         {
             if (overrideData.OriginalTexture2D != null)
             {
                 int instanceID = texture.GetInstanceID();
                 if (overrideData.InstanceID == instanceID)
                 {
                     texture = overrideData.OverrideTextureCache;
                     return;
                 }
                 Texture2DOverride.UnloadTexture2D(ref overrideData);
             }
             Texture2DOverride.LoadTexture2D(texture.name, texture, out overrideData);
             if (overrideData.OverrideTexture2D != null)
             {
                 if ((texture.width != overrideData.OverrideTexture2D.width) || (texture.height != overrideData.OverrideTexture2D.height))
                 {
                     texture.Resize(overrideData.OverrideTexture2D.width, overrideData.OverrideTexture2D.height);
                 }
                 texture.SetPixels32(overrideData.OverrideTexture2D.GetPixels32());
                 texture.Apply();
                 overrideData.OverrideTextureCache = texture;
             }
         }
     }
     catch (Exception exception)
     {
         IniSettings.Error("CursorOverride:\n" + exception.ToString());
     }
 }