Platform Detection
ᴀᴠᴏᴄᴀᴅᴏ
A simple few bools that would add IsDesktop, IsPCVR & IsQuest to the VRCPlayerApi class. This would make life a lot better for world creators.
Log In
Genesis
I would prefer a VRCPlayerApi.GetPlatform() method that returns an enum with the platform type (e.g. VRCPlatform.Windows, VRCPlatform.Android, VRCPlatform.iOS), which coupled with the VRCPlayerApi.IsUserInVR() method would give all the information needed for handling any combination of platforms and form factors. Using an enum would also be trivial to add new platforms in future.
BobyStar
For the upcoming (still in testing) Apple iOS version, I can see this being much more in handy since it would get quite annoying to manually toggle between PC, Android, and iOS toggles in your UdonGraph. Once again I assume you can use preprocessor directives to determine if you are building for PC, Android, or iOS.
Something like: IsUserOnAppleiOS
This is all assuming that an iOS build would be separate, if it's somehow converted for worlds (like shaders is a big question) then an iOS variant isn't necessary.
BobyStar
Would probably just need one since you can flip IsUserInVR to check if they are on flatscreen. Just a IsUserOnAndroid would be enough since that will get you the full checks of:
IsUserInVR & NOT IsUserOnAndroid = PCVR
NOT IsUserInVR & NOT IsUserOnAndroid = Windows Desktop
IsUserInVR & IsUserOnAndroid = Android VR (Quest or Pico)
NOT IsUserInVR & IsUserOnAndroid = Android Mobile
Currently with UdonSharp you can use preprocessor directives to determine if they are on android automatically but with UdonGraph the only thing you can do is manually check a bool variable during the android build that says "I am on android".
Making a IsUserOnAndroid would also allow us to be able to compensate for remote players instead of only the local player.
Docs mention that they are working on an easier solution.