public void FixedUpdate() { if (localPlayer && localPlayer.IsAlive) { Transform curTransform = localPlayer.transform; Vector3 moveVector = Vector3.zero; if (Input.GetKey(KeyCode.W)) { moveVector += curTransform.forward; } if (Input.GetKey(KeyCode.S)) { moveVector -= curTransform.forward; } if (Input.GetKey(KeyCode.A)) { moveVector -= curTransform.right; } if (Input.GetKey(KeyCode.D)) { moveVector += curTransform.right; } // mouse right drag float rotationValue = Input.GetAxis("Mouse X"); float verticalValue = Input.GetAxis("Mouse Y"); StartCoroutine(ASyncUpdateTransform(localPlayer, moveVector, rotationValue, verticalValue, GameplayManager.estimatedLag)); if (Input.GetMouseButton(0) || Input.GetKeyDown(KeyCode.Space)) { if (localPlayer.CanAttack()) { AddCommand(PlayerCommand.FireBullet); StartCoroutine(AsyncFireBullet(localPlayer, GameplayManager.estimatedLag)); } } } }