Hi, guys. I got trouble implementing my unity multiplayer game. Below is the script attached to the player prefab. The player can move smoothly in both server and host, but the player has glitches in the client. Can someone help me to look at my code below? Thank you.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Netcode;
public class TestPlayerControl : NetworkBehaviour
{
public NetworkVariable<Vector3> position = new NetworkVariable<Vector3>();
public CharacterController characterController;
public void Move()
{
if (IsOwner)
{
Vector3 moveDir = (transform.forward * Input.GetAxis("Vertical"))
+ (transform.right * Input.GetAxis("Horizontal"));
characterController.Move(5 * Time.deltaTime * moveDir);
if (IsServer)
{
position.Value = transform.position;
}
else if (IsClient)
{
MoveServerRpc(transform.position);
}
} else
{
transform.position = position.Value;
}
}
[ServerRpc]
void MoveServerRpc(Vector3 pos)
{
position.Value = pos;
}
// Update is called once per frame
void Update()
{
Move();
}
}