- Home /
How to brows local folders and get images from it and display them in a unity application?
Hello,
So it been a while that i am searching for something usually easy to implement, which is the possibility to interact with the local drive, via a sort of browser, and get files to be uploaded to your project and display them or do whatever you want with them, nevertheless, with Unity it seem to be an impossible mission (according to my searches people are trying to get this work since long long time ago since before Unity3d v3), but yet it seems to be doable.
All i want to do is select images with different extensions (jpg,jpeg,png, ...) and display them in a window in my application; Here is a code i found that allow me to brows my files and to replace a texture of a selected sprite into the image i am selecting with the "png" extension please help me with any improvement:
using UnityEngine;
using System.Collections;
using UnityEditor;
using System.IO;
public class ChangeTxtures : MonoBehaviour
{
public Texture2D texture;
public string path;
void Awake ()
{
texture = GetComponentInChildren<UISprite> ().mainTexture as Texture2D;
texture.GetRawTextureData ();
}
[MenuItem(@"Hierarchy/UI Root/Camera/imageToChange")]
public void TextureChange ()
{
= Selection.activeObject as Texture2D;
if (texture == null) {
EditorUtility.DisplayDialog (
"Select Texture",
"You Must Select a Texture first!",
"Ok");
return;
}
path = EditorUtility.OpenFilePanel (
"Overwrite with png",
"",
"png");
if (path.Length != 0) {
WWW www = new WWW ("file:///" + path);
www.LoadImageIntoTexture (texture);
}
}
}
Answer by Graham-Dunnett · Jul 01, 2015 at 10:42 AM
The Unity application side of this is documented here:
http://docs.unity3d.com/ScriptReference/Texture2D.LoadImage.html
The displaying a window, and loading a chosen image into a byte array can be handled using non-Unity c# code. So maybe write a c# application that does this task. Once you have that working, add the script you've written into your Unity project. (Obviously you won't need the basic application startup code.)
Thank you for your answer, but if i use a .NET application i will be pushed to create a process and then call this process from my unity application which will fore the user to install .netframework etc and i don't want to go this way... am i wrong?
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Unhandled Exception caused by UnityEngine.UI 0 Answers
Double Click problems with NGUI? 1 Answer