If you’ve ever had to work with a REST API from within a Unity project or use web services and back end data in general, you’re probably seen the limitation of Unity’s built in WWW class. Lucky for us, the developers at Different Methods released an awesome plugin that provides full HTTP functionality for Unity3D. It’s called UniWeb. UniParse is a free plugin, still in beta, that works with UniWeb and a backend service called Parse.
I owe a special thank you to Simon Wittber of Different Methods for super speedy and excellent customer service help with resolving a Unity Asset Store download issue.
Here’re a few deeper UniParse examples:
- Using UniParse to Store a New High Score in Parse while Adding a Value to a _ptr Field
- Error & solution: ParseInstance.GET(string) throws “InvalidCastException: Cannot cast from source type to destination type” for Date objects from Parse
My buddy Steve, went through the following basic steps to get UniWeb up and running on an iPhone 4S and and several Android models. The Android phones included:
- Motorola DroidX (Android 2.3.4)
- Samsung Galaxy (Android 2.1)
- Samsung Galaxy Nexus (Android 4.0.4, Ice Cream Sandwich)
What is UniWeb? It’s an “HTTP glue” plugin for Unity3D. It allows for much more functionality than Unity’s built in WWW class. For example, Parse’s REST API sometimes requires the use of the PUT method instead of GET or POST. WWW only works with GET & POST. UniWeb handles PUT just fine. While I haven’t tried all of UniWeb’s functionality, it has classes to handle stuff like JSON parsing & Socket connections.
Here’s a basic test we did over HTTP:
- Installed the UniWeb .unitypacakge
- Opened up the basic UniWebExample scene that comes with UniWeb
- At first, we got a minor error telling us the socket connection failed because the socket server doesn’t exist. This was easily fixed – we removed the Socket script from the test GameObject.
- The UniWebExample image loading script worked perfectly
- Next, we ran into a cross compilation error when we tried to put the test app on an iPhone. Steve fixed this by switching the Api Compatibility Level from “.NET 2.0 Subset” to .”NET 2.0″ in Build Settings > Player Settings (under iOS platform settings, Other Settings > Optimization)
- Shortly after Steve sent an APK of this test app to several folks with Android devices and the app worked well for them. The images loaded & cycled through once, just like on the iPhone version.
Testing UniParse with UniWeb
In layman’s terms Parse is a back end service for mobile developers. It frees mobile developers up from having to code their own databases & middleware language logic to manage data between those databases & mobile applications. UniParse is Different Methods’ plugin for talking to Parse from inside a game or mobile app built with Unity3D.
The UniParse plugin uses an Update() method that does an HTTP ‘PUT’. There’s also Delete, which does HTTP ‘Delete’.
Testing UniWeb over HTTPS