Is it possible in Unity to upload and download files while in a game? I want to make a minecraft-style building game and allow the user to import and use their own models (.obj files, etc), while in the game. I've been using Playfab for a backend and Photon for online cabilities, but as far as I can tell it will only work with image files (in Playfab). Is there a way to accomplish this and what would I need to use?
Yes, the way to go is to use Asset Bundles
Asset Bundles are platform specific assets that you create in Unity, but that you don't put in your build. Instead you can download them later, just as you want.
The process is a bit long, but not that difficult. The unity manual is actually really good and it should be easy to follow. Here is the link:
Asset Bundles documentation
Related
I would like to use Unity to make a room viewing application, where users can put furniture models and wall papers in a folder and run the application to use these funiture and decor. But as I know one has to be in edit mode in order to make bundle assets. Any ideas from experienced programmers?
Ive got a Unity WebGL Build with alot of Assets (1k+) that keep increasing. Everytime a new Asset gets added the whole Thing has to be built again which takes a lot of Time.
I only need a small Amount of the Assets during Runtime but i cant know which Assets exactly (The User can decide which Assets to actually use and see during Runtime).
Ive heard about Asset Bundles but i dont quite understand them yet. Is it possible to have some Sort of external Server running on its own with all the Assets there and then have the WebGL Build load the specific Assets it needs during Runtime from that Server?
You can use Addressable Asset System with remote catalog for dynamic asset delivery using any CDN. Every time you run your game Addressable Asset System will download assets dynamically & asynchronously. This feature is successor of old asset bundle system.
I don't know if this has already been asked but I am trying to build an app in unity using the Mapbox SDK. The problem is that when I try building it in a WebGL format, then it says this:
"Build completed with a result of 'Failed'
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)"
Does anyone if Mapbox supports building in WebGL and if not, what another way can I use to share my app as an online game?
I hope this is enough info. Please try and make it simple, I don't know much about this kind of stuff.
Thank you!
WebGL is still under preview and alot of things don't work in it, to share your game over the web you could build as Windows application, then zip the output folder, put it in a github repo and link the repo to people you want to share your game to. If its a mobile game you can build as an APK and share you apk via github as well. Of course there is other options too but just to give you some ideas.
From below 2 posts, it appears that in order to build it on WebGL, you would have to get rid of the AR folders and files.
https://github.com/mapbox/mapbox-gl-js/issues/7531
https://medium.com/#jonathanwitcoski/day-20-making-a-webgl-game-in-unity-with-mapbox-sdk-31aeb147df15
I tried sharing a unity game file in an .exe. When I downloaded the file, it said you need to install Unityplayer.dll. What is unityplayer.dll and how do I download it or is there something else I need to do.
When you build your game, it provides you with multiple files. One of it is Unityplayer.dll.
If you want to share your built games to somebody else, you need to make sure that you share to them all the files that UnityEditor had built.
More about the missing DLL stuff here.
Is it possible to mix iOS code and interface elements with Unity generated iOS code?
For example if I am working with a game developer who is developing a game in Unity, could I take his xCode project (generated by Unity), and add interface elements which I code myself using Objective-C & Interface Builder etc?
From what I can see this isn't possible as everything is created via Unity.... but hopefully I am wrong...
Thanks!
You can even use 3rd party libraries in XCode and integrate them in the build process. After fiddling around with the right settings I wrote a blog entry about this:
iPhone & Unity3D: Integrating 3rd Party Static Libraries in Unity3D Generated XCode Projects
You should be able to generate Native plug ins to interact with the Unity code. You would need to write a wrapper though. Read more at: http://unity3d.com/support/documentation/Manual/Plugins.html
Read the part at iOS :)
I came across this general guide to working with Unity native plugins in OSX which was useful and is probably where you need to be looking for your answer, as Zophiel said
https://blog.reigndesign.com/blog/unity-native-plugins-os-x
You can just design a view and button to trigger the unity to run or stop, but models in unity can't be controlled using Obj-C, although unity has import to Xcode, it only import the start code, game scripts depending on the link libraries which couldn't be modified.
I think you can do it as the same way I probably has been working with Objective-C without any changes. For Unity's code generator preserves the native codes under Classes.
And furthermore there is an another way to do this which is called "Plug-in".
But I hope the developers in Unity find a better way seamlessly combined with Xcode as staffs in Apple usually does.
Combining IB and Unity's integrated editor would be better and more welcomed in future.
Possible yes. Advisable for beginner or intermediate level Devs? Probably not. The Unity project is generated and regenerated every time you push a build. Now I believe that if you use Append when you do builds that it should keep existing changes to the Xcode project... but 'should' is the operative word there. You may need to implement some sort of build system like Jeeves to keep the headaches to a minimum if you are trying to do this on a large project in which you for see a constant stream of updates from both the Unity side and the Xcode side.
Now if you're integrating code that is in it's own files and doesn't overlap or rewrite the code Unity has generated, then the Append feature is really going to work for you, but if you're deleting, altering, or adding code to any of the files that Unity generated then definitely use SVN or some other form of source control and snap shot before and after every new Unity recompile / Xcode generation.
Also, take a look in the Unity Asset store. Whatever functionality you are trying to home brew in Xcode can definitely be written in C# on Unity. Someone else may have already conquered the problem you're trying to solve and placed it in the asset store for $5.
Hope that helps.