x


How do I let the user select a local file for my application to use?

I can utilize a jpeg from a source file on drive using wwwtexture, but how do I allow Unity to allow user to browse for a file on their hard drive. Just like they would from a typical app.

Thx for the help!

P

more ▼

asked Jan 11, 2010 at 02:30 AM

peter gravatar image

peter
381 101 77 80

Please provide more context - who is the end user here, and what setting? is this for a Webplayer, as standalone build, or an editor tool?

Jan 11, 2010 at 11:01 AM duck ♦♦
(comments are locked)
10|3000 characters needed characters left

4 answers: sort voted first

There is no built in file browser for the player, so you would need to roll your own using the .net frameworks classes for file system access. A while ago I wrote a UnityGUI one - it could probably use a lot of love, but it is a good starting point.

This of-course only works for stand-alones - not webplayers (security restricts access to the users file system). If you need to allow the user to upload files to your webplayer, you should go through HTML forms for that.

I've done that before and a good trick is to have your webplayer run in a frameset with a zero pixel tall data frame which you would use to communicate with the upload process. You can use Application.ExternalEval to add your upload form to the surrounding HTML.

The trick is then to have this form target the dataframe with your receiving server-side script - overseeing the file upload operation. Once the upload is completed, your server-side script (now outputting to the hidden dataframe) should output javascript to hide the HTML form and send the URL of the uploaded file to the webplayer.

more ▼

answered Jan 11, 2010 at 01:40 PM

AngryAnt gravatar image

AngryAnt ♦♦
4.5k 21 28 78

Thanks for the info. I'm new to all this so it's a bit beyond my reach at the moment. Is there an easy .fla (flash) file on the web that will do what you describe, or is PHP the key to make it happen.

Jan 11, 2010 at 08:51 PM peter

As far as I know you can't use flash for server-side scripting. Something like ASP/Perl or PHP as you suggest would be needed for that.

Jan 12, 2010 at 09:03 AM AngryAnt ♦♦

hi AngryAnt,

do u have a sample or tutorial on how to go about doing file browser for file system?

Aug 10, 2011 at 07:09 AM R-GiGgS84

I have just made some experiments on user textures loading into the WebPlayer. See Them on my blog here: http://virtualplayground.d2.pl/WP/?p=254

Jan 08, 2012 at 02:05 PM tomekkie2

Why not use WWWForm to upload the image? The example shows already how to send a screenshot out of Unity to the server: http://docs.unity3d.com/Documentation/ScriptReference/WWWForm.html

Aug 15, 2012 at 07:30 PM marsbear
(comments are locked)
10|3000 characters needed characters left

In the editor, you can use EditorUtility.OpenFilePanel to show an window in which the user can select a file, and the path of the selected file is returned. You can then use that load the file or do whatever you want with it. I don't know of anything similar you can use in your actual application, but you could use a simple text field in which the user enters the name of the file they want to load. Creating a full-blown file-select dialog where the user can browser their hard-drive and external devices would be more difficult.

more ▼

answered Jan 11, 2010 at 03:53 AM

Stelimar gravatar image

Stelimar
4k 19 29 66

I tried the script found at your link called EditorUtility.OpenFilePanel a " Can't add script behaviour openfile. The script needs to derive from MonoBehaviour!" was the result. Am I missing something?

Thx for our help!

I also tried putting the script in Assets/Editor and Unity reports back error.

Jan 11, 2010 at 05:29 AM peter

It means exactly what it says, the class your trying to use the function in has to be a child of the MonoBehaviour class. If you're using JavaScript and don't use the class declaration, that's the default. But if you are using the class declaration, or you're using C# or Boo, you'll have to specify that it inherits from MonoBehaviour.

Also, the script WILL need to be in the Assets/Editor folder.

Jan 11, 2010 at 11:19 PM Stelimar
(comments are locked)
10|3000 characters needed characters left

I'm working with UniFileBrowser. you wil get it in the Asset Store or directly from starscene It's easy to integrate and works perfectly for standalones.

if you want to change the layout, you have to invest a little time but it works.

more ▼

answered Jan 08, 2012 at 01:49 PM

maspi gravatar image

maspi
76 18 14 18

(comments are locked)
10|3000 characters needed characters left

There's also File Browser & Save/Load UI from the Asset Store:

http://u3d.as/content/pigasus-games/file-browser-save-load-ui/3rU

more ▼

answered Oct 10, 2012 at 07:10 PM

petrucio gravatar image

petrucio
171 1 3 6

(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x9521
x1210
x96

asked: Jan 11, 2010 at 02:30 AM

Seen: 13475 times

Last Updated: Oct 10, 2012 at 07:10 PM