- Home /
Best way to place a name tag over a player?
I'm making a multiplayer game with Photon. I've been able to get name tags synched and everyone has their name displayed with TextMesh and Transform.LookAt. The only problem is, when someone clicks out of the game window, it stops rotating to face the camera. Anyone know what I Can use instead? The name is synchronized when a player joins the game and the string that is their name is then placed into the MeshText.text field. Anyone know what I can use instead or how to fix this?
What you mean? Describe the problem a little more, also, what engenders this problem.
Perhaps post an image of the problem so we can understand your dilemma.
a) I'd render the labels in screen space; this way there is no need to rotate anything. Get the point above/below your player, convert it to screen space, and center your text mesh on it. Optionally scale it based on the players' relative distance.
b) Once a user has disconnected, for whatever reason, the label should quickly fade out (if this was the current behavior I doubt you'd even notice the name not rotating).
Just when someone doesn't have the game window selected and then the other player moves, it doesn't rotate on theirs anymore.
Answer by thornekey · Jun 01, 2014 at 05:58 AM
Add a 3d text component to an empty object and put that in ur player. Next add this script:
public string getPlayerName;
public TextMesh NAMEPLATE;
void Awake () {
NAMEPLATE = gameObject.GetComponent<TextMesh>();
networkView.RPC("getName", RPCMode.AllBuffered, PlayerPrefs.GetString("Player_Name"));
}
[RPC]
public void getName (string name) {
NAMEPLATE.text = name;
}
when making your player, give the option to have a name, and save it to playerprefs as Player_Name
drag the object with the component to the variable called NAMEPLATE.
This worked for me :) yw
Your answer
Follow this Question
Related Questions
Syncing Rotation in Photon. (Moves but won't rotate) 1 Answer
Look at like rotating around y axis 1 Answer
SphereCast help 1 Answer
Minimap arrows 0 Answers
Get slerp to work just as LookAt(,Vector3.right) does 1 Answer