@@ -22,8 +22,8 @@ public class LargeWorld : MonoBehaviour
22
22
private PhysicsWheelJoint m_RearWheelJoint ;
23
23
private PhysicsWheelJoint m_FrontWheelJoint ;
24
24
25
- private FloatField m_WorldPosition ;
26
- private FloatField m_WorldSize ;
25
+ private FloatField m_WorldPositionField ;
26
+ private FloatField m_WorldSizeField ;
27
27
28
28
private void OnEnable ( )
29
29
{
@@ -77,19 +77,26 @@ private void SetupOptions()
77
77
// Follow Car.
78
78
var followCar = root . Q < Toggle > ( "follow-car" ) ;
79
79
followCar . value = m_FollowCar ;
80
- followCar . RegisterValueChangedCallback ( evt => { m_FollowCar = evt . newValue ; } ) ;
80
+ followCar . RegisterValueChangedCallback ( evt =>
81
+ {
82
+ m_FollowCar = evt . newValue ;
83
+
84
+ // If we're no longer following the car then set the current camera position to the car position.
85
+ if ( ! m_FollowCar )
86
+ m_CameraPosition = new Vector2 ( m_FrontWheelJoint . bodyA . position . x , m_CameraPosition . y ) ;
87
+ } ) ;
81
88
82
89
// Camera Pan Speed.
83
90
var cameraPanSpeed = root . Q < Slider > ( "camera-pan-speed" ) ;
84
91
cameraPanSpeed . value = m_CameraPanSpeed ;
85
92
cameraPanSpeed . RegisterValueChangedCallback ( evt => { m_CameraPanSpeed = evt . newValue ; } ) ;
86
93
87
94
// World Position.
88
- m_WorldPosition = root . Q < FloatField > ( "world-position" ) ;
95
+ m_WorldPositionField = root . Q < FloatField > ( "world-position" ) ;
89
96
90
97
// World Size.
91
- m_WorldSize = root . Q < FloatField > ( "world-size" ) ;
92
- m_WorldSize . value = m_GridSize * m_GridCount / 1000.0f ;
98
+ m_WorldSizeField = root . Q < FloatField > ( "world-size" ) ;
99
+ m_WorldSizeField . value = m_GridSize * m_GridCount / 1000.0f ;
93
100
94
101
// Reset Scene.
95
102
var resetScene = root . Q < Button > ( "reset-scene" ) ;
@@ -272,7 +279,7 @@ private void Update()
272
279
m_CameraManipulator . CameraPosition = new Vector2 ( m_FrontWheelJoint . bodyA . position . x , m_CameraManipulator . CameraPosition . y ) ;
273
280
274
281
// Show world position.
275
- m_WorldPosition . value = m_CameraManipulator . CameraPosition . x / 1000.0f ;
282
+ m_WorldPositionField . value = m_CameraManipulator . CameraPosition . x / 1000.0f ;
276
283
}
277
284
278
285
private void SetCarSpeed ( float speed )
0 commit comments