I made test project to get player object in client but it doesn't work
Options
this is my whole code of my test project
but it return null when I use GetPlayerObject() on client
what did I miss?
private NetworkRunner runner; [SerializeField] private GameObject playerObj; private void Start() { runner = gameObject.AddComponent<NetworkRunner>(); runner.ProvideInput = true; } private void Update() { if (Input.GetKeyDown(KeyCode.F1)) { Debug.LogError("Host"); var args = new StartGameArgs(); args.SessionName = "a"; args.GameMode = GameMode.Host; args.SceneManager = gameObject.AddComponent<NetworkSceneManagerDefault>(); runner.StartGame(args); } if (Input.GetKeyDown(KeyCode.F2)) { Debug.LogError("Client"); var args = new StartGameArgs(); args.SessionName = "a"; args.GameMode = GameMode.Client; runner.StartGame(args); } if (Input.GetKeyDown(KeyCode.F3)) { Debug.LogError("ShutDown"); runner.Shutdown(); } if (Input.GetKeyDown(KeyCode.F4)) { foreach (var player in runner.ActivePlayers) { runner.SetPlayerObject(player, runner.GetPlayerObject(player)); Debug.LogError($"{player}, {runner.GetPlayerObject(player)}"); } } if (Input.GetKeyDown(KeyCode.F5)) { foreach (var player in runner.ActivePlayers) { Debug.LogError($"{player}, {runner.GetPlayerObject(player)}"); } } } public void OnPlayerJoined(NetworkRunner runner, PlayerRef player) { var obj = runner.Spawn(playerObj, new Vector3(UnityEngine.Random.Range(-5f, 5f), 0, 0), null, player); runner.SetPlayerObject(player, obj); Debug.LogError($"{player}, {runner.GetPlayerObject(player)}"); }
0