diff --git a/Assets/Prefabs/PlayerReplayer.prefab b/Assets/Prefabs/PlayerReplayer.prefab index 6950050..fa4004b 100644 --- a/Assets/Prefabs/PlayerReplayer.prefab +++ b/Assets/Prefabs/PlayerReplayer.prefab @@ -109,7 +109,7 @@ Camera: m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 @@ -209,7 +209,8 @@ MonoBehaviour: BulletTracerRenderer: {fileID: 1440177105284983216} BulletTracerStart: {fileID: 5020301824866751461} BulletTracerEnd: {fileID: 8852994287323472227} - FrameIndex: 0 + k__BackingField: 0 + DeathIndices: be000000f8000000eb0100005a0200008f020000 --- !u!1 &6013909295272487250 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/WorldScene.unity b/Assets/Scenes/WorldScene.unity index ce2e171..e381b09 100644 --- a/Assets/Scenes/WorldScene.unity +++ b/Assets/Scenes/WorldScene.unity @@ -233,13 +233,19 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 41667031} serializedVersion: 2 - m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927} + m_LocalRotation: {x: 0.3420201, y: -0, z: -0, w: 0.9396927} m_LocalPosition: {x: 0, y: 20, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1909908770} m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0} +--- !u!4 &135452471 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, + type: 3} + m_PrefabInstance: {fileID: 2041731858} + m_PrefabAsset: {fileID: 0} --- !u!1001 &466407930 PrefabInstance: m_ObjectHideFlags: 0 @@ -303,123 +309,24 @@ PrefabInstance: propertyPath: m_Name value: PlayerReplayer objectReference: {fileID: 0} - - target: {fileID: 5082956827802089079, guid: 2b0bfd2786fee6740a799a99023f5000, - type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7220179918976106526, guid: 2b0bfd2786fee6740a799a99023f5000, - type: 3} - propertyPath: m_BackGroundColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7220179918976106526, guid: 2b0bfd2786fee6740a799a99023f5000, - type: 3} - propertyPath: m_BackGroundColor.b - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7220179918976106526, guid: 2b0bfd2786fee6740a799a99023f5000, - type: 3} - propertyPath: m_BackGroundColor.g - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7220179918976106526, guid: 2b0bfd2786fee6740a799a99023f5000, - type: 3} - propertyPath: m_BackGroundColor.r - value: 0 - objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: - - {fileID: 8551904799974569781, guid: 2b0bfd2786fee6740a799a99023f5000, type: 3} - - {fileID: 7157254949447541528, guid: 2b0bfd2786fee6740a799a99023f5000, type: 3} - - {fileID: 9118715726176433314, guid: 2b0bfd2786fee6740a799a99023f5000, type: 3} - - {fileID: 260851893664485351, guid: 2b0bfd2786fee6740a799a99023f5000, type: 3} + m_RemovedGameObjects: [] m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 2b0bfd2786fee6740a799a99023f5000, type: 3} ---- !u!1 &933837795 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 933837798} - - component: {fileID: 933837797} - - component: {fileID: 933837796} - m_Layer: 0 - m_Name: DevPlayer - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!143 &933837796 -CharacterController: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 933837795} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Height: 2 - m_Radius: 0.2 - m_SlopeLimit: 45 - m_StepOffset: 0.3 - m_SkinWidth: 0.08 - m_MinMoveDistance: 0.001 - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &933837797 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 933837795} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1142ffe602591254daf84550efb544e1, type: 3} - m_Name: - m_EditorClassIdentifier: - PlayerSpeed: 3.5 - CamSens: 3 - CameraPivot: {fileID: 1193332431} ---- !u!4 &933837798 +--- !u!4 &1004516925 stripped Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, + type: 3} + m_PrefabInstance: {fileID: 8020063586600593708} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 933837795} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} - m_LocalPosition: {x: -6, y: 1, z: -20} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1193332431} - - {fileID: 1244742875} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} --- !u!1001 &1141151236 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 1909908770} m_Modifications: - target: {fileID: 17868670549024712, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} @@ -649,17 +556,17 @@ PrefabInstance: - target: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} @@ -931,160 +838,12 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} ---- !u!1 &1193332428 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1193332431} - - component: {fileID: 1193332430} - - component: {fileID: 1193332429} - - component: {fileID: 1193332432} - - component: {fileID: 1193332433} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &1193332429 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1193332428} - m_Enabled: 1 ---- !u!20 &1193332430 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1193332428} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.01 - far clip plane: 1000 - field of view: 60.174316 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &1193332431 +--- !u!4 &1162259848 stripped Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, + type: 3} + m_PrefabInstance: {fileID: 1141151236} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1193332428} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 933837798} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1193332432 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1193332428} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 0 - m_Cameras: [] - m_RendererIndex: -1 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_VolumeFrameworkUpdateModeOption: 2 - m_RenderPostProcessing: 0 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_AllowXRRendering: 1 - m_AllowHDROutput: 1 - m_UseScreenCoordOverride: 0 - m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} - m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_Version: 2 - m_TaaSettings: - m_Quality: 3 - m_FrameInfluence: 0.1 - m_JitterScale: 1 - m_MipBias: 0 - m_VarianceClampScale: 0.9 - m_ContrastAdaptiveSharpening: 0 ---- !u!114 &1193332433 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1193332428} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 42603e4f95b24efa85355a04450c20e2, type: 3} - m_Name: - m_EditorClassIdentifier: - BulletTracerRenderer: {fileID: 0} - BulletTracerStart: {fileID: 0} - BulletTracerEnd: {fileID: 0} - k__BackingField: 0 --- !u!114 &1207293318 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1013965729963872153, guid: 2b0bfd2786fee6740a799a99023f5000, @@ -1097,7 +856,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 42603e4f95b24efa85355a04450c20e2, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &1244742874 +--- !u!1 &1909908769 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1105,140 +864,40 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1244742875} - - component: {fileID: 1244742876} + - component: {fileID: 1909908770} m_Layer: 0 - m_Name: Canvas + m_Name: Level m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1244742875 -RectTransform: +--- !u!4 &1909908770 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1244742874} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1986817333} - m_Father: {fileID: 933837798} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!223 &1244742876 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1244742874} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 1193332430} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 - m_AdditionalShaderChannelsFlag: 0 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!1 &1986817332 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1986817333} - - component: {fileID: 1986817335} - - component: {fileID: 1986817334} - m_Layer: 0 - m_Name: Crosshair - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1986817333 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1986817332} + m_GameObject: {fileID: 1909908769} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1244742875} + m_Children: + - {fileID: 1004516925} + - {fileID: 135452471} + - {fileID: 1162259848} + - {fileID: 41667034} + m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 25, y: 25} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1986817334 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1986817332} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.5019608} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1986817335 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1986817332} - m_CullTransparentMesh: 1 --- !u!1001 &2041731858 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 1909908770} m_Modifications: - target: {fileID: 376463832094554576, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} @@ -1278,17 +937,17 @@ PrefabInstance: - target: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} @@ -1336,7 +995,7 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 1909908770} m_Modifications: - target: {fileID: 17868670549024712, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} @@ -1571,17 +1230,17 @@ PrefabInstance: - target: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, type: 3} @@ -1872,9 +1531,5 @@ PrefabInstance: SceneRoots: m_ObjectHideFlags: 0 m_Roots: - - {fileID: 8020063586600593708} - - {fileID: 2041731858} - - {fileID: 1141151236} - - {fileID: 933837798} - {fileID: 466407930} - - {fileID: 41667034} + - {fileID: 1909908770} diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs index 38b6214..b97785d 100644 --- a/Assets/Scripts/PlayerController.cs +++ b/Assets/Scripts/PlayerController.cs @@ -1,4 +1,5 @@ using System.IO; +using System.Linq; using UnityEngine; namespace InterfaceOff.WorldScene @@ -12,6 +13,7 @@ namespace InterfaceOff.WorldScene [SerializeField] private Transform BulletTracerStart; [SerializeField] private Transform BulletTracerEnd; [field: SerializeField] public int FrameIndex { get; private set; } + [SerializeField] private int[] DeathIndices; private float LerpValue; @@ -26,6 +28,11 @@ namespace InterfaceOff.WorldScene { /* Iterates the frame index */ FrameIndex = (FrameIndex + 1) % (Frames.Length - 2); + + if (DeathIndices.Contains(FrameIndex)) + { + Debug.Log("Possible player death"); + } } private void Update()