CommandAttribute function not calling on client
I just followed this tutorial: https://www.youtube.com/watch?v=JlKf0h0K5PU
And I don't know much about network related features in Unity, so please understand.
I have a player prefab which has Moving script(Drive.cs), Network Identity(Local Player Authority: on), Network Transform(Sync Transform) and Setup Local Player script.
This is Setup Local Player Script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class SetupLocalPlayer : NetworkBehaviour {
[SyncVar]
public string pname = "Player";
void OnGUI() {
if(isLocalPlayer) {
pname = GUI.TextField(new Rect(25, Screen.height - 40, 100, 30), pname);
if(GUI.Button(new Rect(130, Screen.height - 40, 80, 30), "Change")) {
print("Rename to " + pname);
CmdChangeName(pname);
}
}
}
[Command]
public void CmdChangeName(string newName) {
pname = newName;
}
void Start () {
if(isLocalPlayer) {
GetComponent<Drive>().enabled = true;
}
}
void Update() {
if(isLocalPlayer) {
this.GetComponentInChildren<TextMesh>().text = pname;
}
}
}
It's just quite simple, when user enter the server, and press the button after change his name from TextField, it will call "CmdChangeName" function which has [Command] Attribute so that the server updates the player's name, also name variable is [SyncVar] so that server automatically sync it.
Looks like there is not wrong, but when play the game, change the name, it won't affect to other players. It just changed to local.
What am I missing? Is there a something that changed after new Unity came out? Any help will very appreciate it!
Your answer
![](https://koobas.hobune.stream/wayback/20220612120957im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Multiplayer - Error when rejoining room 1 Answer
UNET | How to use network messages? 1 Answer
How to use a script to control the nickname of online players 0 Answers
Best server solution - RTS 1 Answer
Unity Photon doesn't Spawn Player 0 Answers