AssetBundle.Load() to Texture2D

Hello, these assetbundles are really hard to understand how to use. Here’s my current problem :

I got an asset bundle, i load an object, it’s a texture 2D, and i cast it into Texture2D, but i get the folloxing error :

Instantiating a non-readable 'de_1__main' texture is not allowed! Please mark the texture readable in the inspector or don't instantiate it.
UnityEngine.Object:Instantiate(Object)
LoadGallery:Update() (at Assets/Script/LoadGallery.cs:57)

This is the code calling it :

Object obj;
            for (int i = 0; i < galleryObjects.Length; i++)
            {
                obj = tmp.assetBundle.Load(pars.Country.ToLower() + "_" + (i + 1).ToString() + "__main");
                galleryObjects*.renderer.material.mainTexture = (Texture2D)Instantiate(obj);*

galleryObjects*.transform.Rotate(new Vector3(0, 0, 45));*
}
Have i misunderstood the Load() part of the assetbundles? Because i don’t see other ways to cast an Object into a Texture2D.

I’m just guessing here, but maybe you want to do this instead (as advised by the error):

            galleryObjects*.renderer.material.mainTexture = (Texture2D)obj;*

did you try

 galleryObjects*.renderer.material.mainTexture = obj as Texture2D;*

this should work!