AR mobile Unity Multiplayer spawn multiple cameras relative to one another

I want to make my own node.js multiplayer server for an Android AR Unity game. The game will have up to three players. I am wondering how to get each of the player cameras to spawn on the same plane relative to one another, without using a predefined spawn point. So if the players start 10 feet from one another in the real world, the cameras will spawn in that relative distance to one another, sharing the same local space, so that players can see each other and also remain the same objective distance from objects spawned in the scene. Does it have something to do with MakeContentAppearAt? Or do I need to use fixed spawn points? I think I understand how to do it if there are fixed spawn points, but it doesn’t make sense to me that the spawn points could be fixed while real world AR starting positions for people holding phones would be dynamic.

It appears i’d also need to make the rotation of each camera match in the unity world coordinates. GitHub - MichaelTaylor3D/UnityGPSConverter: Converts GPS coordinates to unity UCS coordinates and vice versa seems like it might work for position? What do you think? What about rotation? Also converting the GPS system to Unity coordinates wouldn’t give me the Y-axis value of the camera position. Let’s say I want weapon prefabs to sync according to the locations of each camera.

GPS shouldn’t be necessary. Each phone will have its its own origin and coordinate space (centered wherever it was at startup) - if you use image-tracking to get the pose (position and rotation) of the same image on all players’ devices, you can use this to transform between spaces.

Do you mean use image-tracking to recognize a real life image across each device? I’m not sure this works for my use case, as players could spawn themselves in any sort of real world environment, and I don’t want them to have to carry around an image just to sync their position. Or did I misunderstand you? Would GPS work even if it’s not necessary?

GPS would not be accurate enough to localize multiple players into the same coordinate system. Position values would be incorrect on an order of meters when syncing GameObjects between devices.

As one solution, if you were able to carry an image around with you, you could all localize against the image which would give you roughly centimeter-level accuracy.

If you do truly want to localize players based on GPS without any markers in the environment, I would recommend that you check out Niantic VPS or Google’s new ARCore Spatial Creator. These are some of the most robust cross-platform solutions out there right now. (Or if you were only using iOS devices you could also look at ARKit’s AR World Map feature)