- Home /
How to get LocalPlayer position in Photon Bootcamp Demo?
I'm experimenting with streaming terrain in the Photon multiplayer version of the Bootcamp demo and trying to base it on the local player's position but I'm stumped trying to figure out how to access it.
Part of my problem is figuring out how to get access to the game instance from outside. Game.cs owns PlayerLocal.cs. _usePhoton is something else I looked at. In any case, I'm finding the code quite confusing, and I'm not really sure the cleanest way to do that.
I am also implementing everything in C#.
Answer by marnes · Apr 15, 2013 at 02:23 AM
I finally figured it out so I'll post my own answer. Perhaps someone else has a more elegant way to solve this.
First in usePhoton.cs I implemented this function:
public PlayerLocal getLocalPlayer()
{
if (this.GameInstance == null || this.GameInstance.State != ClientState.Joined)
{
return null;
}
return GameInstance.PlayerLocal;
}
Then in my new code to get the position:
usePhoton photon = GameObject.Find("_GameManager/UsePhoton").GetComponent<usePhoton>();
PlayerLocal localPlayer = photon ? photon.getLocalPlayer() : null;
if( localPlayer )
{
Vector3 localPos = localPlayer.transform.position;
}
This is just the simplest code -- I had to poll until I found the local player as it takes several frames for it to initialize. Once set up, I cached the fact that I created my stuff. But I still need the player's position to stream terrain as I move around. It does the trick but feels sloppy, but at least I'm okay for now.
Your answer
Follow this Question
Related Questions
pun 2 change view Id of local player ? 0 Answers
Camera rotation around player while following. 6 Answers
Create Player From Values [ Photon ] 0 Answers
Photon pun 2 how to get the position of a Photon.Realtime.Player 0 Answers
Move object to position on another object's locally rotated axis 1 Answer