Fix some of the movement jitter problems
This commit is contained in:
parent
fcd3aef1c9
commit
fc1e8085bc
@ -25,6 +25,8 @@ namespace Cyber.Entities {
|
|||||||
public Transform Head;
|
public Transform Head;
|
||||||
|
|
||||||
private Vector3 MovementDirection = new Vector3();
|
private Vector3 MovementDirection = new Vector3();
|
||||||
|
private Vector3 ServerPosition = new Vector3();
|
||||||
|
private bool SyncToServerPosition = false;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Moves the character in the given direction.
|
/// Moves the character in the given direction.
|
||||||
@ -90,8 +92,13 @@ namespace Cyber.Entities {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="reader"></param>
|
/// <param name="reader"></param>
|
||||||
public override void Deserialize(NetworkReader reader) {
|
public override void Deserialize(NetworkReader reader) {
|
||||||
transform.position = reader.ReadVector3();
|
ServerPosition = reader.ReadVector3();
|
||||||
Move(reader.ReadVector3());
|
float Drift = (ServerPosition - transform.position).magnitude;
|
||||||
|
if (Drift > 1) {
|
||||||
|
SyncToServerPosition = true;
|
||||||
|
} else if (Drift < 0.01) {
|
||||||
|
SyncToServerPosition = false;
|
||||||
|
}
|
||||||
Vector3 rot = reader.ReadVector3();
|
Vector3 rot = reader.ReadVector3();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,10 +108,19 @@ namespace Cyber.Entities {
|
|||||||
/// <param name="writer"></param>
|
/// <param name="writer"></param>
|
||||||
public override void Serialize(NetworkWriter writer) {
|
public override void Serialize(NetworkWriter writer) {
|
||||||
writer.Write(transform.position);
|
writer.Write(transform.position);
|
||||||
writer.Write(MovementDirection);
|
|
||||||
writer.Write(GetRotation());
|
writer.Write(GetRotation());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Update() {
|
||||||
|
if (SyncToServerPosition) {
|
||||||
|
// LERP version
|
||||||
|
//transform.position = Vector3.Lerp(transform.position, ServerPosition, 50f * Time.deltaTime);
|
||||||
|
// Non-LERP version
|
||||||
|
transform.position = ServerPosition;
|
||||||
|
SyncToServerPosition = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void FixedUpdate() {
|
private void FixedUpdate() {
|
||||||
CharacterController.Move(MovementDirection * MovementSpeed * Time.fixedDeltaTime);
|
CharacterController.Move(MovementDirection * MovementSpeed * Time.fixedDeltaTime);
|
||||||
}
|
}
|
||||||
|
@ -23,9 +23,9 @@ UnityConnectSettings:
|
|||||||
m_TestConfigUrl:
|
m_TestConfigUrl:
|
||||||
UnityAdsSettings:
|
UnityAdsSettings:
|
||||||
m_Enabled: 0
|
m_Enabled: 0
|
||||||
m_InitializeOnStartup: 1
|
m_InitializeOnStartup: 0
|
||||||
m_TestMode: 0
|
m_TestMode: 0
|
||||||
m_EnabledPlatforms: 4294967295
|
m_EnabledPlatforms: 4294964991
|
||||||
m_IosGameId:
|
m_IosGameId:
|
||||||
m_AndroidGameId:
|
m_AndroidGameId:
|
||||||
PerformanceReportingSettings:
|
PerformanceReportingSettings:
|
||||||
|
Loading…
Reference in New Issue
Block a user