Unity Remote
Unity Remote is a software application that makes your iPhone/iPad act as a remote control for your project in Unity. This is useful for rapid development when you don't want to compile and deploy your project to device for each change and prefer to use the Editor Game window instead.
Where can I find Unity Remote?
A functional version of the Unity remote is available to download from the AppStore at no charge. If you prefer to build and deploy the Unity remote yourself, you can download the source from the Unity website.
How do I build Unity Remote?
This section describes how to build Unity Remote from source code.
First, download the project source code from the Unity website, and unzip it to your directory of choice. This contains an XCode project that you'll launch with XCode and build to install the Unity Remote onto your device.
Assuming you have already created the provisioning profile and successfully installed iOS apps on your device, you just need to double-click the UnityRemote.xcodeproj in the UnityRemote folder of your Unity iOS install directory. This will launch XCode where you then click "Build and Go". The app should then be installed to your iPhone/iPad. If you have never built and run applications before, we strongly recommend that you consider building some of the Apple examples first to familiarize yourself with XCode and iOS.
Once it is installed, make sure your device is connected via Wi-Fi to the same network as your development machine. Launch the Unity Remote on your iPhone/iPad while Unity is running on your computer, and select your computer from the list that appears. Now, whenever you enter Play mode in the Editor, your device will act as a remote control that you use for developing and testing your game. You'll be able to control the application with the iPhone wirelessly. You will also see a low-res version of the app on the iPhone/iPad itself.
Note: The Unity iOS editor cannot correctly emulate iPhone/iPad OS and hardware, so you will not get the same behavior (of graphics performance, touch responsiveness, sounds playback, etc) that you would on a real device.
XCode shows strange errors while deploying Unity Remote to my device. What should I do?
The default Identifier in the Unity Remote project is not compatbile with your provisioning profile. You will have to manually alter this Identifier in your XCode project. This Identifier has to match your provisioning profile.
If you have a provisioned AppID with an asterisk on the end (e.g. ######.com.mycompany.*) already, you can skip the rest of this paragraph. If you have not created an AppID with an trailing asterisk, then you will have to create one in the Program Portal on Apple's iPhone Developer Program. Go to the Program Portal, choose the AppIDs tab, click the Add ID button (in the top right corner) and type your usual bundle identifier followed by dot and asterisk (e.g. com.mycompany.*) in the App ID (Bundle Seed ID + Bundle Identifier) field. Add the new AppID to you provisioning profile, download and reinstall it. Don't forget to restart XCode afterwards. If you have any trouble, consult the Provisioning How-to section on Apple's website.
Don't forget to change the Identifier before you can install the Unity Remote on your device.
Open the Unity Remote project with XCode. In the menu select Project->Edit Active Target "Unity Remote". This will open a new window titled Target "Unity Remote" Info. Select the Properties tab. Change the Identifier property field from com.unity3d.UnityRemote to bundle identifier in your AppID followed by "." (dot) followed by "UnityRemote". For example, if your provisioning profile contains ######.com.mycompany.* AppID, then change the Identifier field to com.mycompany.UnityRemote.
Next, select Build->Clean all targets in the menu, and compile and install Unity Remote again. You may also need to change Active SDK from Simulator to Device - 2.0 | Release. It is OK to select SDK 2.0 even if your device runs a newer OS version.
I'm getting really poor graphics quality when running my game in UnityRemote. What can I do to improve it?
When developing game with UnityRemote the game actually runs on your Mac and its visual content is heavily compressed and streamed to the device. As a result you see a low-res version of the app on iOS. How the game actually runs on device could be tested by launching Build & Run from the Editor menu ( ).
Unity Remote is laggy. Can I improve it?
Performance of Unity Remote strongly depends on Wi-Fi speed, the quality of your networking hardware, and other side factors. For the best experience, create an Ad-Hoc network between your Mac and your iPhone/iPad. Just click the Airport icon on your Mac, chose "Create Network", enter a name/password, and click OK. On your iPhone/iPad, choose Settings->Wi-Fi and select the new Wi-Fi network you have just created. Remember that an ad-hoc network is really a wireless connection that does not involve a wireless access point. Therefore, you will usually not have internet access while using ad-hoc networking.
Turning Bluetooth off on both on your iPhone/iPad and on Mac should also improve connection quality.
If you do not need to have game view on iDevice, you can turn image synchronization off in the remote machine list. This will reduce the network traffic needed for the Remote to work.
Unity Remote connection is still poor.
If you experience this, it can either be due to a problem with the installation or other side factors that prevent Unity Remote from functioning properly. Try the following steps and see if the performance improves before moving on to the next:
- First of all, you need to check if Bluetooth is turned on. Both, your Mac and iPhone/iPad should have it turned off. Second, delete the settings file located at ~/Library/Preferences/com.unity3d.UnityEditoriPhone.plist
- Reinstall Unity iOS on your iPhone/iPad.
- Reinstall Unity iOS on your Mac.
- As a last step, it may be a good idea to hard reset your iPhone/iPad.
If you still experience problems, try installing Unity Remote on another iDevice (in another location if possible) and see if it gives you better results. There could be problems with RF interference or other software influencing the performance of the wireless adapter performance on your Mac or iDevice.
We have a lot of Wi-Fi networks in our environment, and Unity Remote is unusable. What should we do?
You can try to speed up input in Unity Remote by sacrificing the appearance of the application on iOS. To do this, go to the source project located in your Applications folder, locate the file setup.h file (in UnityRemote/Classes), and try changing some of the enums in there.
Unity Remote doesn't see my Mac. What should I do?
- Check if Unity Remote and your Mac are connected to the same wireless network.
- Check your firewall's settings, router's security settings, and any other hardware/software that may filter packets on your network.
- Leave Unity Remote running, turn off your Mac's Airport for a minute or two, and turn in on again.
- Restart both Unity and Unity Remote. Sometimes you also need to cold-restart your iPhone/iPad (hold menu and power buttons).
- Unity Remote uses the Apple Bonjour service, so check if your Mac has it turned on.
- Reinstall Unity Remote from the latest Unity iOS package.
Android Remote
Please also read about Android Remote.
Page last updated: 2011-02-24