On this page, we will list known issues with Photon on the various platforms. The focus here is on issues which we can't fix or workaround. In some cases, this means we will simply list broken versions per platform and guide you to other versions.
Mobile Background Apps
On mobile platforms, if the app moves to background it pauses the main message loop which is responsible for keeping the client connected among other things.
Typical causes of this are:
- Player hits "home button".
- Phone call received.
- Video ads.
- Third party plugin that introduces an overlay view in the app (e.g. facebook, Google, etc.).
PUN has a background fallback thread that keeps client connected to server.
This does not work on iOS (see Background Execution on the Apple dev pages).
To keep connection alive, the background thread sends ACKs only to server for a limited time.
The default background thread timeout is 60 seconds. You can change it using
After the background timeout, PUN will disconnect the client gracefully.
If the client was joined to a room before moving to background PUN will try -if needed- to reconnect and rejoin the same room as soon as the app is foreground again.
There is a known issue in Windows 8 (maybe 8.1), which has the system search for new Wifi networks, even though it connected to one. This can affect a game with realtime networking with frequent gaps of incoming messages and a spike in ping times.
In order to fix it change
ScanWhenAssociated field in system register
PhotonAnimatorView and Triggers
- Due to the nature of the Trigger(s), it is only enabled when the animation event starts and disabled immediately before the next
- Components on a GameObject are executed in the same order as they are declared
- Editing the Order of Execution Settings will affect execution order on the GameObject's components
It essential that the "PhotonAnimatorView" component is executed after the code that raises the Trigger(s). So it's safer to put it at the bottom of the stack, or at least below the component(s) that will be responsible for raising the Trigger(s) using Animator.SetTrigger(...).
The "PhotonAnimatorView" Inspector shows the various paramaters current values.
A good way to check even before publishing is that the Trigger is properly raised to
true when it should.
If you don't see it happening, chances are this particular Trigger won't be synchronized over the network.
Application.runInBackground is not supported on mobile platforms.
OnApplicationPause method is called whenever the app moves to or back from background:
PUN Free to PUN+ Upgrade
In Unity 4, with a few notable exceptions, PUN+ is the same as PUN Free. This can confuse Unity's import when you add PUN+ to an existing PUN Free project and you get a compile error like: System.Net.Sockets are supported only on Unity iOS Pro.
You can copy the needed files manually, but before you start: Backup your work!
Create a new, empty project and import PUN+. Make sure PUN+ and PUN Free are the same version (same value in PhotonNetwork.versionPUN).
Close Unity and use the Explorer or Finder to copy the PUN+ files into your existing project. Make sure to "merge" all folders into existing ones and to "overwrite" or "replace" any part of PUN.
Make sure you replaced everything in the Assets\Plugins folders and sub-folders. Double check if you have any Photon*.dll anywhere else in the updated project. Only the Assets\Plugins folder should have those Photon files.
Open the updated project, right click in the project panel and click "re-import all".
To verify PUN+ is working, you can export the PUN+ project to the mobile. If that doesn't work, let us know by mail and send us a log file.
Windows Store Capabilities
If you target Windows Store and you are having exceptions when you try to connect or you have this error:
A network capability is required to access this network resource
Make sure to enable the required capability from Unity's "Player Settings" -> "Publisher Settings" -> "Capabilities -> "InternetClient"
Windows Phone 8
Export in Unity 4.3.3 and 4.3.4 fails due to a bug in that release. It will fail with message:
Exception: Method not found: 'System.TypeCode System.Type.GetTypeCode(System.Type)'.”
A workaround is described here.
Unity 4.2.2 will work and 4.5 will be fixed as well.
If you want to export your Unity application to UWP you can either use .NET or IL2CPP as scripting backend. Photon PUN is already configured to choose the correct library in order to successfully export the application from Unity. If however something goes wrong while exporting please check and make sure that you are using the correct library for the certain scripting backend:
If you are using .NET as scripting backend make sure that Photon3Unity3D.dll is used from /Assets/Plugins/Metro/ directory
If you are using IL2CPP as scripting backend make sure that Photon3Unity3D.dll is used from /Assets/Plugins/ directory
Some Unity 4.3.3 and 4.3.4 exports will not read received room- and player-properties correctly. Some cases might also crash with out-of-memory exceptions.
In this case, the AOT (Ahead Of Time) compilation is not working correctly and some of the methods that work on Hashtables break. We could not find a proper cause for this but are testing the upcoming releases of Unity 4.x for a fix.
Keep in mind: Not all exports are automatically broken but some project will always break, others won't.
Some Unity versions do support IPv6 or has broken this feature previously available (like 5.4). Some of the supported versions are: 4.7.2, 5.1.5, 5.2.5, 5.3.4p4, 5.4.0p1 and newer (see Unity blog post).