TrueSyncBehaviour resetting positions

Hello. My levels are generated at runtime. My issue: If TrueSyncBehaviour is present in the scene, or if is added/instantiated to the scene later, ALL instantiated objects with components TSTransform and any TS collider have their positions reset to 0,0,0.

In an older thread someone was having the same issue, a solution was posted which only partly worked. Solution being commenting out _serialized = true; in TSTransform.cs :


private void UpdateEditMode() {
if (transform.hasChanged) {
_position = transform.position.ToTSVector();
_rotation = transform.rotation.ToTSQuaternion();
_scale = transform.localScale.ToTSVector();

_serialized = true;
}
}


This, combined with resetting the TSTransform component in the inspector panel fixed the issue in part. TrueSyncBehaviour is no longer resetting the position of objects with TSTransform, HOWEVER it is still resetting the position of objects with ANY TSCollider.

Has anyone encountered this? Possible solutions?
Many thanks

Comments

  • I've run into this issue too! I've just resorted to adding a TSTransform to all objects by hand. It sucks.
  • I've thought about creating a custom function which forcibly sets the current position of a TSTransform2D by making some of the components public instead of private when its created.
  • Hi @Rob604, it is a known bug on TrueSync, unfortunately for now we did have these workarounds, but it is something that should be fixed.