Network Library Documentation
Loading...
Searching...
No Matches
NetworkTransform Class Reference

Handles synchronization of position and rotation over the network. For local users sends updates in time interval, for remote users interpolates transform. More...

Inheritance diagram for NetworkTransform:

Public Member Functions

void ApplyNetworkTransform (Vector3 pos, Quaternion rot)
 Applies the received position and rotation from the network to be used for interpolation.

Public Attributes

float sendRate = 0.05f
 Time interval between transform updates for local users.
NetworkUser UserInfo
 UserInfo class used for checking if the object belongs to the local user or another player.

Private Member Functions

void Start ()
 Initializes the transform targets and adjusts send rate based on UDP setting.
void Update ()
 For local users, sends transform updates periodically. For remote users, smoothly interpolates transform to the target.

Private Attributes

float sendTimer = 0f
 Timer to track when the next transform should be sent.
Vector3 targetPosition
 Target position to interpolate to (for remote users).
Quaternion targetRotation
 Target rotation to interpolate to (for remote users).

Detailed Description

Handles synchronization of position and rotation over the network. For local users sends updates in time interval, for remote users interpolates transform.

Definition at line 6 of file NetworkTransform.cs.

Member Function Documentation

◆ ApplyNetworkTransform()

void NetworkTransform.ApplyNetworkTransform ( Vector3 pos,
Quaternion rot )

Applies the received position and rotation from the network to be used for interpolation.

Definition at line 64 of file NetworkTransform.cs.

65 {
66 targetPosition = pos;
67 targetRotation = rot;
68 }
Quaternion targetRotation
Target rotation to interpolate to (for remote users).
Vector3 targetPosition
Target position to interpolate to (for remote users).

◆ Start()

void NetworkTransform.Start ( )
private

Initializes the transform targets and adjusts send rate based on UDP setting.

Definition at line 31 of file NetworkTransform.cs.

32 {
33 targetPosition = transform.position;
34 targetRotation = transform.rotation;
35 if(Client.instance.GetDefaultSettings().allowUDP == false)
36 {
37 sendRate = 1f;
38 }
39 }
float sendRate
Time interval between transform updates for local users.

◆ Update()

void NetworkTransform.Update ( )
private

For local users, sends transform updates periodically. For remote users, smoothly interpolates transform to the target.

Definition at line 44 of file NetworkTransform.cs.

45 {
46 if (UserInfo.isLocalUser)
47 {
48 sendTimer += Time.deltaTime;
49 if (sendTimer >= sendRate)
50 {
51 NetworkManager.networkManager.UpdateTransform(this.transform);
52 sendTimer = 0f;
53 }
54 }
55 else
56 {
57 transform.position = Vector3.Lerp(transform.position, targetPosition, Time.deltaTime * 10f);
58 transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.deltaTime * 10f);
59 }
60 }
float sendTimer
Timer to track when the next transform should be sent.
NetworkUser UserInfo
UserInfo class used for checking if the object belongs to the local user or another player.

Member Data Documentation

◆ sendRate

float NetworkTransform.sendRate = 0.05f

Time interval between transform updates for local users.

Definition at line 11 of file NetworkTransform.cs.

◆ sendTimer

float NetworkTransform.sendTimer = 0f
private

Timer to track when the next transform should be sent.

Definition at line 15 of file NetworkTransform.cs.

◆ targetPosition

Vector3 NetworkTransform.targetPosition
private

Target position to interpolate to (for remote users).

Definition at line 19 of file NetworkTransform.cs.

◆ targetRotation

Quaternion NetworkTransform.targetRotation
private

Target rotation to interpolate to (for remote users).

Definition at line 23 of file NetworkTransform.cs.

◆ UserInfo

NetworkUser NetworkTransform.UserInfo

UserInfo class used for checking if the object belongs to the local user or another player.

Definition at line 27 of file NetworkTransform.cs.