// Token: 0x0600BACA RID: 47818 RVA: 0x004404B0 File Offset: 0x0043E6B0 public Vector3 GetExtrapolatedPositionOffset() { float num = (float)(PhotonNetwork.time - this.IMNELEFELLD); if (this.HNCFAJJGIPN.ExtrapolateIncludingRoundTripTime) { num += (float)PhotonNetwork.GetPing() / 1000f; } Vector3 result = Vector3.zero; PhotonTransformViewPositionModel.ExtrapolateOptions extrapolateOption = this.HNCFAJJGIPN.ExtrapolateOption; if (extrapolateOption != PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues) { if (extrapolateOption != PhotonTransformViewPositionModel.ExtrapolateOptions.FixedSpeed) { if (extrapolateOption == PhotonTransformViewPositionModel.ExtrapolateOptions.EstimateSpeedAndTurn) { Vector3 a = (this.LPBKKPPALCD - this.DNCBFGDAEKL()) * (float)PhotonNetwork.sendRateOnSerialize; result = a * num; } } else { Vector3 normalized = (this.LPBKKPPALCD - this.DNCBFGDAEKL()).normalized; result = normalized * this.HNCFAJJGIPN.ExtrapolateSpeed * num; } } else { Quaternion rotation = Quaternion.Euler(0f, this.FEMCINHEMEO * num, 0f); result = rotation * (this.JPAGJFHJAAB * num); } return(result); }
private void TrySwitchMasterClient() { if (!DB || Players == null || Players.Length == 1) { return; } int p = PhotonNetwork.GetPing(); if (Players.Length > 1 && (p > DB.lagThreshold || errors >= DB.switchMasterErrors)) { Player n = GetNextMaster(); if (n == PhotonNetwork.LocalPlayer) { lastLagCheck = Time.time + DB.lagCheck * LAG_CHECK_DELAY; //continue; } else { if (n != PhotonNetwork.MasterClient) { PhotonNetwork.SetMasterClient(n); } skipLagCheck = true; } } }
/// <summary> /// reports ping every 10 (default) seconds by storing it as a custom player /// prefs value in the Photon Cloud. 'Ping' is defined as the roundtrip time to /// the Photon server and it is only reported if it has changed /// </summary> public virtual void UpdatePing() { // only report ping every 10 (default) seconds if (Time.time < m_NextAllowedPingTime) { return; } m_NextAllowedPingTime = Time.time + PingReportInterval; // get the roundtrip time to the photon server int ping = PhotonNetwork.GetPing(); // only report ping if it changed since last time if (ping == m_LastPing) { return; } m_LastPing = ping; // send the ping as a custom player property (the first time it will be // created, from then on it will be updated) Hashtable playerCustomProps = new Hashtable(); playerCustomProps["Ping"] = ping; PhotonNetwork.player.SetCustomProperties(playerCustomProps); }
//Chamado assim que a conexão é realizada e validada public override void OnConnectedToMaster() { print("Conexão realizada e validada com sucesso"); print("Server: " + PhotonNetwork.CloudRegion + " Ping: " + PhotonNetwork.GetPing()); //Local do servidor e ping partidasUI.gameObject.SetActive(true); //PhotonNetwork.JoinLobby(); //Entrar em um Lobby }
private void NetworkMovement() { pingInSeconds = (float)PhotonNetwork.GetPing() * 0.001f; timeSinceLastUpdate = (float)(PhotonNetwork.Time - _networkLastDataReceivedTime); totalTimePassed = pingInSeconds + timeSinceLastUpdate; // Depending if grounded use the correct acceleration float acceleration = onGround ? maxAcceleration : maxAirAcceleration; //float maxSpeedChange = acceleration * Time.deltaTime; float maxSpeedChange = _networkVelocity.magnitude * Time.deltaTime; //Vector3 exterpolatedTargetPosition = _networkPosition + Vector3.Scale(transform.position, _networkVelocity) * totalTimePassed; //exterpolatedTargetPosition = _networkPosition + Vector3.Scale(transform.position, _networkVelocity) * totalTimePassed; //newPosition = Vector3.MoveTowards(transform.position, exterpolatedTargetPosition, _body.velocity.magnitude * Time.fixedDeltaTime); //newPosition.x = Mathf.MoveTowards(transform.position.x, exterpolatedTargetPosition.x, maxSpeedChange); //newPosition.y = Mathf.MoveTowards(transform.position.y, exterpolatedTargetPosition.y, maxSpeedChange); velocity.x = Mathf.MoveTowards(velocity.x, _networkVelocity.x, maxSpeedChange); velocity.y = Mathf.MoveTowards(velocity.x, _networkVelocity.y, maxSpeedChange); if (Vector3.Distance(transform.position, exterpolatedTargetPosition) > 2f) { newPosition = exterpolatedTargetPosition; } //newPosition.y = Mathf.Clamp(newPosition.y, 0.0f, 50f); _body.velocity = velocity; //transform.position = newPosition; }
/// <summary> /// Calculates an estimated position based on the last synchronized position, /// the time when the last position was received and the movement speed of the object /// </summary> /// <returns>Estimated position of the remote object</returns> public Vector3 GetExtrapolatedPositionOffset() { float timePassed = (float)(PhotonNetwork.time - m_LastSerializeTime); if (m_Model.ExtrapolateIncludingRoundTripTime == true) { timePassed += (float)PhotonNetwork.GetPing() / 1000f; } Vector3 extrapolatePosition = Vector3.zero; switch (m_Model.ExtrapolateOption) { case PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues: Quaternion turnRotation = Quaternion.Euler(0, m_SynchronizedTurnSpeed * timePassed, 0); extrapolatePosition = turnRotation * (m_SynchronizedSpeed * timePassed); break; case PhotonTransformViewPositionModel.ExtrapolateOptions.FixedSpeed: Vector3 moveDirection = (m_NetworkPosition - GetOldestStoredNetworkPosition()).normalized; extrapolatePosition = moveDirection * m_Model.ExtrapolateSpeed * timePassed; break; case PhotonTransformViewPositionModel.ExtrapolateOptions.EstimateSpeedAndTurn: Vector3 moveDelta = (m_NetworkPosition - GetOldestStoredNetworkPosition()) * PhotonNetwork.sendRateOnSerialize; extrapolatePosition = moveDelta * timePassed; break; } return(extrapolatePosition); }
public Vector3 GetExtrapolatedPositionOffset() { float num = (float)(PhotonNetwork.time - this.m_LastSerializeTime); if (this.m_Model.ExtrapolateIncludingRoundTripTime) { num += (float)PhotonNetwork.GetPing() / 1000f; } Vector3 result = Vector3.zero; switch (this.m_Model.ExtrapolateOption) { case PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues: { Quaternion rotation = Quaternion.Euler(0f, this.m_SynchronizedTurnSpeed * num, 0f); result = rotation * (this.m_SynchronizedSpeed * num); break; } case PhotonTransformViewPositionModel.ExtrapolateOptions.EstimateSpeedAndTurn: { Vector3 a = (this.m_NetworkPosition - this.GetOldestStoredNetworkPosition()) * (float)PhotonNetwork.sendRateOnSerialize; result = a * num; break; } case PhotonTransformViewPositionModel.ExtrapolateOptions.FixedSpeed: { Vector3 normalized = (this.m_NetworkPosition - this.GetOldestStoredNetworkPosition()).normalized; result = normalized * this.m_Model.ExtrapolateSpeed * num; break; } } return(result); }
private void Update() { if (textConnectedRegion != null) { textConnectedRegion.text = string.Format(formatConnectedRegion, PhotonNetwork.CloudRegion); } if (textPing != null) { textPing.text = string.Format(formatPing, PhotonNetwork.GetPing().ToString("N0")); } if (textCountOfPlayers != null) { textCountOfPlayers.text = string.Format(formatCountOfPlayers, PhotonNetwork.CountOfPlayers.ToString("N0")); } if (textCountOfPlayersInRoom != null) { textCountOfPlayersInRoom.text = string.Format(formatCountOfPlayersInRoom, PhotonNetwork.CountOfPlayersInRooms.ToString("N0")); } if (textCountOfPlayersOnMaster != null) { textCountOfPlayersOnMaster.text = string.Format(formatCountOfPlayersOnMaster, PhotonNetwork.CountOfPlayersOnMaster.ToString("N0")); } if (textCountOfRooms != null) { textCountOfRooms.text = string.Format(formatCountOfRooms, PhotonNetwork.CountOfRooms.ToString("N0")); } }
// Update is called once per frame void Update() { //pingを常に取得し、値に応じて表記を変更 ping = PhotonNetwork.GetPing(); pingText.color = (ping >= 100) ? Color.red : Color.black; pingText.text = "Ping : " + ping; if (isInRoom) { roomNameText.text = PhotonNetwork.room.Name + "\n" + PhotonNetwork.room.PlayerCount + " / " + PhotonNetwork.room.MaxPlayers; if (PhotonNetwork.room.PlayerCount == PhotonNetwork.room.MaxPlayers) { isMax = true; } } //ルーム内の人数が最大人数になったら自動的にキャラクター選択画面を表示 if (isMax && !isInCharaSelect) { isMax = false; isInCharaSelect = true; //キャラ選択画面を表示 GoToSelectCharaMenu(); } }
void OnGUI() { //Check connection state.. if (!PhotonNetwork.connected && !PhotonNetwork.connecting) { //We are currently disconnected GUILayout.Label("Connection status: " + PhotonNetwork.connectionStateDetailed); GUILayout.BeginVertical(); if (GUILayout.Button("Connect")) { //Connect using the PUN wizard settings (Self-hosted server or Photon cloud) PhotonNetwork.ConnectUsingSettings("1.0"); } GUILayout.EndVertical(); } else { //We're connected! GUILayout.Label("Connection status: " + PhotonNetwork.connectionStateDetailed); if (PhotonNetwork.room != null) { GUILayout.Label("Room: " + PhotonNetwork.room.name); GUILayout.Label("Players: " + PhotonNetwork.room.playerCount + "/" + PhotonNetwork.room.maxPlayers); } else { GUILayout.Label("Not inside any room"); } GUILayout.Label("Ping to server: " + PhotonNetwork.GetPing()); } }
// Round timers public void StartRoundTimerSynchronization() { if (matchStatus == MatchStatus.WaitingToStartRound) { // There should only be one other player in this list // Ping in this situation is RTT // Note this value could overflow to negative // Cache value for validation Photon.Realtime.Player[] otherPlayerList = PhotonNetwork.PlayerListOthers; if (otherPlayerList.Length > 0) { int otherPlayerPing = (int)otherPlayerList[0].CustomProperties["Ping"]; int thisPlayerPing = PhotonNetwork.GetPing(); // Whichever player has the higher ping, use their ping as the delay to start the timer int delayPing = (otherPlayerPing > thisPlayerPing) ? otherPlayerPing : thisPlayerPing; // Note there may be discrepancy if the ping of the other client changes significantly within the time to recieve this RPC // Buffer this by double so that the client with the highest ping will not have to start the timer right away photonView.RPC("HandleRoundTimerStartSynchronization", RpcTarget.AllViaServer, PhotonNetwork.ServerTimestamp, 2 * delayPing); } } }
public void GetPing(int count) { if (count < 19) { pinged[count] = PhotonNetwork.GetPing(); } if (count == 19) { pinged [count] = PhotonNetwork.GetPing(); float pingAvg = (pinged [0] + pinged [1] + pinged [2] + pinged [3] + pinged [4] + pinged [5] + pinged [6] + pinged [7] + pinged [8] + pinged [9] + pinged [10] + pinged [11] + pinged [12] + pinged [13] + pinged [14] + pinged [15] + pinged [16] + pinged [17] + pinged [18] + pinged [19]) / 20; Text pingText = GetComponent <Text> (); pingText.text = "" + Mathf.RoundToInt(pingAvg); if (pingAvg < 110) { pingText.color = Color.green; } if (pingAvg >= 110 && pingAvg < 220) { pingText.color = Color.yellow; } if (pingAvg >= 220) { pingText.color = Color.red; } } }
public void OnEnterPassworld(InputField pass) { if (checkingRoom == null) { Debug.Log("Checking room is not assigned more!"); return; } if ((string)checkingRoom.CustomProperties[PropertiesKeys.RoomPassworld] == pass.text && checkingRoom.PlayerCount < checkingRoom.MaxPlayers) { if (PhotonNetwork.GetPing() < (int)checkingRoom.CustomProperties[PropertiesKeys.MaxPing]) { FadeImage.SetActive(true); FadeImage.GetComponent <Animator>().speed = 2; if (checkingRoom.PlayerCount < checkingRoom.MaxPlayers) { PhotonNetwork.JoinRoom(checkingRoom.Name); } } } else { PasswordLogText.text = "Wrong room password"; } }
// Token: 0x0600BAD2 RID: 47826 RVA: 0x0044093C File Offset: 0x0043EB3C public Vector3 ECGDJCOKCBF() { float num = (float)(PhotonNetwork.time - this.IMNELEFELLD); if (this.HNCFAJJGIPN.ExtrapolateIncludingRoundTripTime) { num += (float)PhotonNetwork.GetPing() / 737f; } Vector3 result = Vector3.zero; PhotonTransformViewPositionModel.ExtrapolateOptions extrapolateOption = this.HNCFAJJGIPN.ExtrapolateOption; if (extrapolateOption != PhotonTransformViewPositionModel.ExtrapolateOptions.Disabled) { if (extrapolateOption != (PhotonTransformViewPositionModel.ExtrapolateOptions) 4) { if (extrapolateOption == (PhotonTransformViewPositionModel.ExtrapolateOptions) 4) { Vector3 a = (this.LPBKKPPALCD - this.DEKDAMEJFGB()) * (float)PhotonNetwork.sendRateOnSerialize; result = a * num; } } else { Vector3 normalized = (this.LPBKKPPALCD - this.DNCBFGDAEKL()).normalized; result = normalized * this.HNCFAJJGIPN.ExtrapolateSpeed * num; } } else { Quaternion rotation = Quaternion.Euler(1224f, this.FEMCINHEMEO * num, 1456f); result = rotation * (this.JPAGJFHJAAB * num); } return(result); }
private void OnGUI() { GUILayout.Label("FPS:" + currentFPS.ToString("f2")); GUILayout.Label("Ping:" + PhotonNetwork.GetPing()); GUILayout.Label("当前时间:" + mapdynamicloading.elapsed); switch (state) { case (mapStates.WaitforReset): { GUILayout.Label(timeOfReset + "s重置安全区"); break; } case (mapStates.WaitforCollapse): { GUILayout.Label(timeOfCollapse + "s开始塌陷"); break; } case (mapStates.Collapse): { GUILayout.Label(timeOfFinishCollapse + "s停止塌陷"); break; } } }
public void RoomRenewal() { Hashtable PlayerCustomProps = new Hashtable(); ListText.text = ""; for (int i = 0; i < PhotonNetwork.PlayerList.Length; i++) { PlayerCustomProps["Ping"] = PhotonNetwork.GetPing(); if (PhotonNetwork.PlayerList[i].NickName == PhotonNetwork.NickName) { PhotonNetwork.PlayerList[i].SetCustomProperties(PlayerCustomProps); } if (playerCountSave.instance.isKor()) { ListText.text += PhotonNetwork.PlayerList[i].NickName + (PhotonNetwork.PlayerList[i].IsMasterClient == true ? "(방장)" :"") + " - " + PhotonNetwork.PlayerList[i].CustomProperties["Ping"] + "ms" + "\n"; } else { ListText.text += PhotonNetwork.PlayerList[i].NickName + (PhotonNetwork.PlayerList[i].IsMasterClient == true ? "(Master)" :"") + " - " + PhotonNetwork.PlayerList[i].CustomProperties["Ping"] + "ms" + "\n"; } } RoomInfoText.text = PhotonNetwork.CurrentRoom.Name + " - " + PhotonNetwork.CurrentRoom.PlayerCount + " / " + PhotonNetwork.CurrentRoom.MaxPlayers; }
void UpdateStatus() { string status = PhotonNetwork.connectionStateDetailed.ToString(); int ping = PhotonNetwork.GetPing(); Debug.Log(status + ", " + ping + "ms"); }
void Awake() { realPosition = Vector3.zero; PhotonNetwork.sendRate = Mathf.FloorToInt(2000.0f / PhotonNetwork.GetPing()); PhotonNetwork.sendRateOnSerialize = Mathf.FloorToInt(2000.0f / PhotonNetwork.GetPing()); StartCoroutine(SetPlayerPing()); }
public override void Move(Vector2 goTo, int leaderID = -1, float speed = -1, float arrivalThreshholdOverride = -1) { Vector2 nowGoing = body.velocity; Vector2 nowAt = transform.position; double whenToStart = PhotonNetwork.Time + PhotonNetwork.GetPing() * 0.0015; Transform leader = null; if (leaderID != -1) { leader = PhotonNetwork.GetPhotonView(leaderID).transform; } float arrivalThreshhold; if (arrivalThreshholdOverride == -1) { arrivalThreshhold = bodyCircle.radius; } else { arrivalThreshhold = arrivalThreshholdOverride; } int noiseStartPoint = Random.Range(0, 100); // photonView.RPC("Move", RpcTarget.Others, whenToStart, nowGoing.x, nowGoing.y, nowAt.x, nowAt.y, goTo.x, goTo.y, noiseStartPoint, leaderID, moveConductor.GetSpeed(), arrivalThreshholdOverride); moveConductor.Go(goTo, whenToStart, noiseStartPoint, leader, speed, arrivalThreshhold); }
private double GetInterpolationBackTime() { int interpolaitionBackTime; int ping = PhotonNetwork.GetPing(); if (ping < 50) { interpolaitionBackTime = 100; } else if (ping < 100) { interpolaitionBackTime = 150; } else if (ping < 200) { interpolaitionBackTime = 250; } else if (ping < 400) { interpolaitionBackTime = 450; } else if (ping < 600) { interpolaitionBackTime = 650; } else { interpolaitionBackTime = 1050; } return(interpolaitionBackTime / 1000d); }
private void Update() { Timer += Time.deltaTime; int TimeLeft = (int)(MatchLength - Timer); //TimerText.text = Convert.ToString(MatchLength - Timer); int minutes = Mathf.FloorToInt(TimeLeft / 60F); int seconds = Mathf.FloorToInt(TimeLeft % 60F); TimerText.text = minutes.ToString("0") + ":" + seconds.ToString("00"); if (TimeLeft <= 0 && !endedGame) { EndGame(); endedGame = true; } if (TimeLeft <= -10) { OnClick_LoadLobby(); } EliminationsText.text = localPlayer.GetComponent <PlayerHealth>().Eliminations.ToString(); PingText.text = "Ping: " + PhotonNetwork.GetPing(); if (RespawnTimerActive) { StartRespawn(); } }
public override void OnConnectedToMaster() { LogManager.Instance.Add("Callback: OnConnectedToMaster(). Cloud Region: " + PhotonNetwork.CloudRegion + ". Ping: " + PhotonNetwork.GetPing() + "ms."); LogManager.Instance.Add("Call: JoinRandomRoom()."); PhotonNetwork.JoinRandomRoom(); }
/// <summary> /// Updates the network matchmaker /// </summary> void Update() { if (Diagnostics.IsActive()) { Diagnostics.Add("Network Status", m_networkDiagnostic); Diagnostics.Add("Disconnect Status", m_disconnectCause); Diagnostics.Add("Ping", PhotonNetwork.GetPing()); Diagnostics.Add("Server Time", PhotonNetwork.time); } // Attempt to reconnect when disconnected if (m_reconnectTimer != 0.0f) { m_reconnectTimer -= Time.deltaTime; if (m_reconnectTimer <= 0.0f) { m_reconnectTimer = 0.0f; ConnectToMatchmaker(); } } // Creates a new player when the level has fully initialised if (!m_synchedPrefabs.IsInitialised() && IsConnectedToLevel() && Utilities.IsLevelLoaded() && !Utilities.IsGameOver()) { m_synchedPrefabs.Create(); } }
/// <summary> /// Muestra en pantalla datos de conección, como el estado de coneccion o el nombre de sala en la que se encuentra, /// ping y usuarios conectados. /// </summary> private void OnGUI() { toggleGUI = GUI.Toggle(new Rect((Screen.width) - 50, 0, 200, 200), toggleGUI, "."); GUI.enabled = false; if (this.toggleGUI) { GUILayout.TextArea(PhotonNetwork.countOfPlayers.ToString()); GUILayout.TextArea(PhotonNetwork.connectionState.ToString()); GUILayout.TextArea(PhotonNetwork.GetPing().ToString()); GUILayout.TextArea("In Room= " + PhotonNetwork.countOfPlayersInRooms); //Centro GUILayout.BeginArea(new Rect((Screen.width / 2) - 50, 0, 200, 200)); GUILayout.TextArea(this.photonHandler.Identificador); GUILayout.EndArea(); if (joinRoom) { GUILayout.BeginArea(new Rect((Screen.width) - 200, 0, 200, 200)); GUILayout.TextArea("Nombre de sala: \n" + PhotonNetwork.room.Name); GUILayout.TextArea("Jugadores"); foreach (var item in PhotonNetwork.playerList) { GUILayout.TextArea(item.NickName); } GUILayout.EndArea(); } } GUI.enabled = true; }
public Vector3 GetExtrapolatedPositionOffset() { float num = (float)(PhotonNetwork.time - this.m_LastSerializeTime); if (this.m_Model.ExtrapolateIncludingRoundTripTime) { num += (float)PhotonNetwork.GetPing() / 1000f; } Vector3 vector3_1 = Vector3.get_zero(); switch (this.m_Model.ExtrapolateOption) { case PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues: vector3_1 = Quaternion.op_Multiply(Quaternion.Euler(0.0f, this.m_SynchronizedTurnSpeed * num, 0.0f), Vector3.op_Multiply(this.m_SynchronizedSpeed, num)); break; case PhotonTransformViewPositionModel.ExtrapolateOptions.EstimateSpeedAndTurn: vector3_1 = Vector3.op_Multiply(Vector3.op_Multiply(Vector3.op_Subtraction(this.m_NetworkPosition, this.GetOldestStoredNetworkPosition()), (float)PhotonNetwork.sendRateOnSerialize), num); break; case PhotonTransformViewPositionModel.ExtrapolateOptions.FixedSpeed: Vector3 vector3_2 = Vector3.op_Subtraction(this.m_NetworkPosition, this.GetOldestStoredNetworkPosition()); // ISSUE: explicit reference operation vector3_1 = Vector3.op_Multiply(Vector3.op_Multiply(((Vector3)@vector3_2).get_normalized(), this.m_Model.ExtrapolateSpeed), num); break; } return(vector3_1); }
private void OnGUI() { if (_Debug) { GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUI.color = Color.green; GUILayout.Label("Network Debugger: "); GUILayout.Space(3); GUI.color = Color.white; GUILayout.Label("Connection Status " + PhotonNetwork.ConnectMethod.ToString()); GUILayout.Label("Server: " + PhotonNetwork.CloudRegion); GUILayout.Label("Ping: " + PhotonNetwork.GetPing()); GUILayout.Label("In Room: " + PhotonNetwork.InRoom); if (PhotonNetwork.InRoom) { GUILayout.Label("Room name: " + PhotonNetwork.CurrentRoom.Name); GUILayout.Label("Maximum players allowed in room: " + PhotonNetwork.CurrentRoom.MaxPlayers); GUILayout.Label("Number of players in room:" + PhotonNetwork.CurrentRoom.PlayerCount); } GUILayout.EndVertical(); GUILayout.EndHorizontal(); } }
// INTERNALS private void CheckPlayerPing() { int currentPing = PhotonNetwork.GetPing(); int diff = currentPing - m_LastPlayerPing; int absDiff = Mathf.Abs(diff); if (diff < 0) { if (absDiff > m_PlayerFallingThreshold) { WritePlayerProperty(currentPing); } } else { if (diff > 0) { if (absDiff > m_PlayerRisingThreshold) { WritePlayerProperty(currentPing); } } } m_LastPlayerPing = currentPing; }
void OnJoinedRoom() { Debug.Log("inroom"); create_hands(); Debug.Log(PhotonNetwork.GetPing()); }
void UpdateNetworkedPosition() { //Here we try to predict where the player actually is depending on the data we received through the network //Check out Part 1 Lesson 2 http://youtu.be/7hWuxxm6wsA for more detailed explanations float pingInSeconds = (float)PhotonNetwork.GetPing() * 0.001f; float timeSinceLastUpdate = (float)(PhotonNetwork.time - m_LastNetworkDataReceivedTime); float totalTimePassed = pingInSeconds + timeSinceLastUpdate; Vector3 exterpolatedTargetPosition = m_NetworkPosition + transform.forward * Speed * totalTimePassed; Vector3 newPosition = Vector3.MoveTowards(transform.position , exterpolatedTargetPosition , Speed * Time.deltaTime); if (Vector3.Distance(transform.position, exterpolatedTargetPosition) > 2f) { newPosition = exterpolatedTargetPosition; } newPosition.y = Mathf.Clamp(newPosition.y, 0.5f, 50f); transform.position = newPosition; }
// Token: 0x0600BAC7 RID: 47815 RVA: 0x004402B0 File Offset: 0x0043E4B0 public Vector3 FLFDHNJMIOC() { float num = (float)(PhotonNetwork.time - this.IMNELEFELLD); if (this.HNCFAJJGIPN.ExtrapolateIncludingRoundTripTime) { num += (float)PhotonNetwork.GetPing() / 540f; } Vector3 result = Vector3.zero; PhotonTransformViewPositionModel.ExtrapolateOptions extrapolateOption = this.HNCFAJJGIPN.ExtrapolateOption; if (extrapolateOption != PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues) { if (extrapolateOption != (PhotonTransformViewPositionModel.ExtrapolateOptions) 4) { if (extrapolateOption == (PhotonTransformViewPositionModel.ExtrapolateOptions) 8) { Vector3 a = (this.LPBKKPPALCD - this.DJGBPPCBIAP()) * (float)PhotonNetwork.sendRateOnSerialize; result = a * num; } } else { Vector3 normalized = (this.LPBKKPPALCD - this.DEKDAMEJFGB()).normalized; result = normalized * this.HNCFAJJGIPN.ExtrapolateSpeed * num; } } else { Quaternion rotation = Quaternion.Euler(161f, this.FEMCINHEMEO * num, 1645f); result = rotation * (this.JPAGJFHJAAB * num); } return(result); }