Search Issue Tracker
Won't Fix
Votes
0
Found in [Package]
1.7.5
1.7.6
Issue ID
UVSB-2088
Regression
No
PlatformNotSupportedException: Operation is not supported on this platform.
(Easier repro steps):
1. Create this graph (or variant, just needs to use that *specific* String Concat node, using 4 objects, not 4 strings):
!image-2022-03-21-14-55-39-688.png|width=441,height=388!
2. Enter play mode with that graph on a script machine
3. See error
(Old Repro steps)
How to reproduce:
1. Open attached project
2. Enter Play mode
3. Launch ball with holding space key
4. Wait for the ball to hit bottom bumper
5. Observe Console
Reproduced with: 2021.2.5f1, 2022.1.0b1 (1.7.6)
Note: Error originates from CollisionEvent script machine
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- URPPreprocessBuild.OnPostProcessBuild is never executed when building the Player
- [Linux] Using CTRL+Shift+A shortcut for Add Component throws GUI Rendering Errors
- Crash on MonoBehaviour::Transfer<YAMLRead> when upgrading the Magic Leap XR Plugin
- Image is distorted when VisualElement is scaled and Scale Mode set to scale-and-crop
- Euler angles return different values during Animation Event when using Playables API and the time is 0
Resolution Note:
This is not a VS bug, but an issue with the underlying function call (String Concat that takes 4 objects). See details below.
String Concat has many overloads, so to be specific, we're referring to the overload that accepts 4 Object parameters. Full function specification is `System.String Concat(System.Object, System.Object, System.Object, System.Object, ...)`.
Unity currently uses .Net Framework 4.7.x in editor and various other versions in playmode and builds depending on platform runtime and runtime compatiblity mode. This function *is* defined in .Net Framework 4.7.x and .Net Framework 4.8 (https://docs.microsoft.com/en-us/dotnet/api/system.string.concat?view=netframework-4.8), but this function was added as a means to support backwards compatibliity and is not officially supported. In-fact, Microsoft added this call and explicitly throws this exception. See https://github.com/mono/mono/pull/10452.
In general: This call is not supported in IL2CPP platforms and it's not a good idea to set the API compatibility level to .net framework (older) for this.
We might spend some time figuring out if there's a good way for us to hide nodes that we know will have problems, but that is a separate issue (scalability and maintenance are problems here).
Future versions of VS with the new runtime will probably fix this issue for the most part, as we end up code-genning the relevant functions instead of using Reflection.