If one object (teacher) could be seen by others (students) - it is multiplayer game.
If you want to students couldn't see each other - this is details of realization of multiplayer game.
Therefore, yes, there is a way to do that:
Packets about teacher send to all students. Packets about students send only to teacher, but not to another students.
If you want to keep track of the order when users joined the room (which should actually not matter much) you just need to keep track of them when they join the room. Photon is providing the player with
OnPhotonPlayerConnected(PhotonPlayer newPlayer). You can set the time when they joined the room in the custom room property if needed with a time stamp. Let ...
If you're using Photon, you should be able to set each user id in one of the following ways:
Once authenticated, a Photon client will keep the same UserID until
disconnected. The UserID for a client can be set in three ways:
Client sends its UserID before connecting by setting
AuthenticationValues.UserId. This option is useful when you do not ...
The PlayerControllers for all players exist only on the server.
Each client only has its own PlayerController, but none of the others.
Calling GetController on a pawn will only work if you're on the server or if the pawn is locally controlled. Instead, get the PlayerState from the pawn directly.
Widgets exist only on each client, they can not and should ...
I recently wrote this post on the topic. I hope it helps. I will soon also add the code in another post.
Here is an outline of what it entails:
One decision you have to make is if you have a kind of sub-match or not. For example: In foosball, you will see that in a 2v2 game there are always two players facing each other directly and two indirectly. ...