Load the photos of a specific directory in a texture string c#

Asked

Viewed 46 times

0

I am making a new application and need to upload photo from a specific directory on the computer in this case c:\\Biosearchassets for a Gui Texture in unity3d I was able to find an example but it uses the texture2D and I want to load in 3D Gui Texture tried to change the code but get this error

Assets/Loadimage.Cs(42,29): error CS1503: Argument '#1' cannot Convert 'Unityengine.Texture' Expression to type 'Unityengine.Texture2d'

My code is

using UnityEngine;
using System.Collections;

public class LoadImage : MonoBehaviour {
GameObject[] gameObj;
Texture[] textList;

string[] files;
string pathPreFix; 

// Use this for initialization
void Start () {
    //Change this to change pictures folder
    string path =    @"C:\Biosearchassets\";

    pathPreFix = @"file://";

    files = System.IO.Directory.GetFiles(path, "*.jpg");

    gameObj= GameObject.FindGameObjectsWithTag("Pics");

    StartCoroutine(LoadImages());
}


void Update () {

}

private IEnumerator LoadImages(){
    //load all images in default folder as textures and apply dynamically to plane game objects.
    //6 pictures per page
    textList = new Texture[files.Length];

    int dummy = 0;
    foreach(string tstring in files){

        string pathTemp = pathPreFix + tstring;
        WWW www = new WWW(pathTemp);
        yield return www;
        Texture texTmp = new Texture(1024, 1024, TextureFormat.DXT1, false);  
        www.LoadImageIntoTexture(texTmp);

        textList[dummy] = texTmp;

        gameObj[dummy].GetComponent<Renderer>().material.SetTexture("_MainTex", texTmp);
        dummy++;
    }

}
}

1 answer

0

In fact after much searching for a solution I decided to change my code and do again, code working wonders:

This is the Final Code

using UnityEngine;
using System.Collections;
using UnityEditor;
using System.Linq;

public class LoadImage : MonoBehaviour 
{
private Object[] textures;
public GameObject go;
public static string stringto;


void Start()
{
    textures = Resources.LoadAll("Textures", typeof(Texture2D));

    //foreach (var t in textures)
    //{
    //  Debug.Log(t.name);
        //stringto +=t.name;

    //}


}

void OnGUI()
{
    if (GUI.Button(new Rect(10, 70, 150, 30), "Change texture"))
    {
        foreach (var t in textures)
        {
            Debug.Log(t.name);
            stringto +=t.name;

        }
        // change texture on cube
        Texture2D texture = (Texture2D)textures[Random.Range(0, textures.Length)];
        go.GetComponent<Renderer>().material.mainTexture = texture;


        GameObject.Find("GUIText").GetComponent<TextMesh>().text = texture.name;




        //GUI.Label (Rect (10, 10, 100, 20), stringto);
        //stringto = GUI.TextField(new Rect(10, 10, 200, 20), stringto, 25);
    }
}
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.