void Update() { Vector3 direction = Input.GetAxis("Vertical") * transform.forward + Input.GetAxis("Horizontal") * transform.right; if (direction.sqrMagnitude > 0.01f) { Vector3 forward = Vector3.Slerp( transform.forward, direction, rotationSpeed * Time.deltaTime / Vector3.Angle(transform.forward, direction) ); transform.LookAt(transform.position + forward); } transform.Translate(direction * moveSpeed * Time.deltaTime, Space.World); if (MagicOnionNetwork.IsJoined) { PlayerMoveParameter param = new PlayerMoveParameter(); param.ActorNumber = MagicOnionNetwork.LocalPlayer.ActorNumber; param.PlayerName = MagicOnionNetwork.LocalPlayer.Name; param.Position = transform.position; param.Rotation = transform.rotation; GameHubComponent.Instance.MoveAsync(param); } }
public void MoveAsync(PlayerMoveParameter param) { if (MagicOnionNetwork.IsConnected) { _gameHubClient.MoveAsync(param); } }
private void OnMoveRemotePlayerCharacter(PlayerMoveParameter param) { GameObject remotePlayer; _remotePlayers.TryGetValue(param.ActorNumber, out remotePlayer); if (remotePlayer != null) { remotePlayer.transform.position = param.Position; remotePlayer.transform.rotation = param.Rotation; } }
public async Task MoveAsync(PlayerMoveParameter param) { BroadcastExceptSelf(group).OnMove(param); await Task.CompletedTask; }
void IGameHubReceiver.OnMove(PlayerMoveParameter param) { OnMovePlayerCharacter?.Invoke(param); }