diff --git a/Assets/Prefabs/Circle.prefab b/Assets/Prefabs/Circle.prefab new file mode 100644 index 0000000..e5b75d5 --- /dev/null +++ b/Assets/Prefabs/Circle.prefab @@ -0,0 +1,99 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4277016002390335738 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6404744658567233567} + - component: {fileID: 9048582773104319112} + - component: {fileID: 4182381864814500994} + m_Layer: 0 + m_Name: Circle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6404744658567233567 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4277016002390335738} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &9048582773104319112 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4277016002390335738} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: -1388626623 + m_SortingLayer: 1 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 0.9528302, g: 0.022472408, b: 0.022472408, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &4182381864814500994 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4277016002390335738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf31330d7df081c4c926958352c5fd98, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/Circle.prefab.meta b/Assets/Prefabs/Circle.prefab.meta new file mode 100644 index 0000000..783b007 --- /dev/null +++ b/Assets/Prefabs/Circle.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 041281f6b302f4948943861770d1b9f1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 9e781bb..e02060e 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -123,6 +123,182 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &18018516 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 18018517} + - component: {fileID: 18018519} + - component: {fileID: 18018518} + - component: {fileID: 18018520} + m_Layer: 0 + m_Name: Closed Sprite Shape + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &18018517 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 18018516} + 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: 1150261024} + m_RootOrder: -1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &18018518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 18018516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 90539df1cd5704abcb25fec9f3f5f84b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Spline: + m_IsOpenEnded: 0 + m_ControlPoints: + - position: {x: -5.612631, y: -0.90392923, z: 0} + leftTangent: {x: 0, y: 0, z: 0} + rightTangent: {x: 0.004301071, y: 0.25797606, z: 0} + mode: 2 + height: 0.1 + spriteIndex: 0 + corner: 1 + m_CornerMode: 1 + - position: {x: -5.633483, y: 0.4907832, z: 0} + leftTangent: {x: 0, y: 0, z: 0} + rightTangent: {x: 0, y: 0, z: 0} + mode: 0 + height: 0.1 + spriteIndex: 0 + corner: 1 + m_CornerMode: 2 + - position: {x: 6.4035845, y: 0.53982735, z: 0} + leftTangent: {x: 0, y: 0, z: 0} + rightTangent: {x: 0, y: 0, z: 0} + mode: 0 + height: 0.1 + spriteIndex: 0 + corner: 1 + m_CornerMode: 1 + - position: {x: 6.4208364, y: -0.94759417, z: 0} + leftTangent: {x: 0, y: 0, z: 0} + rightTangent: {x: 0, y: 0, z: 0} + mode: 0 + height: 0.1 + spriteIndex: 0 + corner: 1 + m_CornerMode: 1 + m_SpriteShape: {fileID: 11400000, guid: f24cddf7c09a6442abbce710a6fd7397, type: 2} + m_FillPixelPerUnit: 256 + m_StretchTiling: 1 + m_SplineDetail: 8 + m_AdaptiveUV: 1 + m_StretchUV: 0 + m_WorldSpaceUV: 0 + m_CornerAngleThreshold: 90 + m_ColliderDetail: 16 + m_ColliderOffset: 0.5 + m_UpdateCollider: 1 + m_EnableTangents: 0 + m_GeometryCached: 0 + m_UTess2D: 1 + m_Creator: {fileID: 0} + m_Modifiers: [] + m_ColliderSegment: [] +--- !u!1971053207 &18018519 +SpriteShapeRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 18018516} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 0 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: -1388626623 + m_SortingLayer: 1 + m_SortingOrder: 0 + m_Color: {r: 0.14684942, g: 0.6816413, b: 0.9433962, a: 0.64705884} + m_MaskInteraction: 0 + m_ShapeTexture: {fileID: 2800000, guid: b281b91a70a624a0da1c43adc1c30c7b, type: 3} + m_Sprites: + - {fileID: 21300000, guid: 0ae2b74b1edd14bb18dd7b65ae916a54, type: 3} + - {fileID: 21300000, guid: 608e61deb05c54660bebf5a4dd2ee02d, type: 3} + - {fileID: 21300000, guid: 608e61deb05c54660bebf5a4dd2ee02d, type: 3} + - {fileID: 21300000, guid: 608e61deb05c54660bebf5a4dd2ee02d, type: 3} + - {fileID: 21300000, guid: 608e61deb05c54660bebf5a4dd2ee02d, type: 3} + - {fileID: 21300000, guid: 608e61deb05c54660bebf5a4dd2ee02d, type: 3} + - {fileID: 21300000, guid: 608e61deb05c54660bebf5a4dd2ee02d, type: 3} + - {fileID: 21300000, guid: 608e61deb05c54660bebf5a4dd2ee02d, type: 3} + - {fileID: 21300000, guid: 608e61deb05c54660bebf5a4dd2ee02d, type: 3} + m_LocalAABB: + m_Center: {x: 0.39367104, y: -0.22830045, z: 0} + m_Extent: {x: 6.277254, y: 0.9695667, z: 0} + m_SpriteSortPoint: 0 +--- !u!114 &18018520 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 18018516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3ed3c1e5ea4ca4f41a13946462533c67, type: 3} + m_Name: + m_EditorClassIdentifier: + wavePointPref: {fileID: 4277016002390335738, guid: 041281f6b302f4948943861770d1b9f1, type: 3} + _springStiffness: 0.01 + _dampening: 0.02 + _springs: [] + _spriteShapeController: {fileID: 18018518} + _wavesCount: 6 + _wavePoints: {fileID: 18018516} --- !u!1 &154762089 GameObject: m_ObjectHideFlags: 0 @@ -469,126 +645,6 @@ Tilemap: m_TileObjectToInstantiateIndex: 65535 dummyAlignment: 0 m_AllTileFlags: 1073741825 - - first: {x: -5, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -4, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -3, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -2, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -1, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 3, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 4, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 5, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 6, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - first: {x: 7, y: -5, z: 0} second: serializedVersion: 2 @@ -752,18 +808,8 @@ Tilemap: - first: {x: 3, y: -3, z: 0} second: serializedVersion: 2 - m_TileIndex: 4 - m_TileSpriteIndex: 4 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 4, y: -3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 4 - m_TileSpriteIndex: 4 + m_TileIndex: 3 + m_TileSpriteIndex: 0 m_TileMatrixIndex: 0 m_TileColorIndex: 0 m_TileObjectToInstantiateIndex: 65535 @@ -809,6 +855,16 @@ Tilemap: m_TileObjectToInstantiateIndex: 65535 dummyAlignment: 0 m_AllTileFlags: 1073741825 + - first: {x: 3, y: -2, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 3 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 - first: {x: 8, y: -2, z: 0} second: serializedVersion: 2 @@ -1271,33 +1327,33 @@ Tilemap: m_AllTileFlags: 1073741825 m_AnimatedTiles: {} m_TileAssetArray: - - m_RefCount: 8 + - m_RefCount: 9 m_Data: {fileID: 11400000, guid: 3f89afda70a9b464cb51b38b1410fd58, type: 2} - - m_RefCount: 12 - m_Data: {fileID: 11400000, guid: 24bf95f62094b7b439a57addabc738f2, type: 2} - m_RefCount: 0 m_Data: {fileID: 0} - - m_RefCount: 29 + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 30 m_Data: {fileID: 11400000, guid: 6758ab644e789784ca6c1401e6dc9589, type: 2} - - m_RefCount: 35 + - m_RefCount: 33 m_Data: {fileID: 11400000, guid: bac0a27e7947ed345a6ac005a5369889, type: 2} - m_RefCount: 0 m_Data: {fileID: 0} m_TileSpriteArray: - - m_RefCount: 29 + - m_RefCount: 30 m_Data: {fileID: -1127884870, guid: d4db151fbe2751a408aea21a96ebdd19, type: 3} - - m_RefCount: 12 - m_Data: {fileID: 21300000, guid: c6e8544807d83604d85e701d98f8ca91, type: 3} - m_RefCount: 0 m_Data: {fileID: 0} - - m_RefCount: 8 + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 9 m_Data: {fileID: -2133342697, guid: d4db151fbe2751a408aea21a96ebdd19, type: 3} - - m_RefCount: 35 + - m_RefCount: 33 m_Data: {fileID: 1371389217, guid: d4db151fbe2751a408aea21a96ebdd19, type: 3} - m_RefCount: 0 m_Data: {fileID: 0} m_TileMatrixArray: - - m_RefCount: 84 + - m_RefCount: 72 m_Data: e00: 1 e01: 0 @@ -1316,7 +1372,7 @@ Tilemap: e32: 0 e33: 1 m_TileColorArray: - - m_RefCount: 84 + - m_RefCount: 72 m_Data: {r: 1, g: 1, b: 1, a: 1} m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 @@ -2022,6 +2078,84 @@ MonoBehaviour: m_ShapeLightFalloffSize: 0.5 m_ShapeLightFalloffOffset: {x: 0, y: 0} m_ShapePath: [] +--- !u!1 &1150261022 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1150261024} + - component: {fileID: 1150261023} + m_Layer: 0 + m_Name: Water + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!61 &1150261023 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1150261022} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 +--- !u!4 &1150261024 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1150261022} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.53, y: -4.52, z: -0.0342036} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 18018517} + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1173618891 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/WaterShapeController.cs b/Assets/Scripts/WaterShapeController.cs index 8ff82b9..6d6afe4 100644 --- a/Assets/Scripts/WaterShapeController.cs +++ b/Assets/Scripts/WaterShapeController.cs @@ -45,11 +45,11 @@ public class WaterShapeController : MonoBehaviour float xPosition=waterTopLeftCorner.x+(spacingPerWawe * count); Vector3 wavePoint=new Vector3(xPosition,waterTopLeftCorner.y,waterTopLeftCorner.z); waterSpline.InsertPointAt(index, wavePoint ); - waterSpline.SetHeight(index, 0.1f); + waterSpline.SetHeight(index, 0f); waterSpline.SetCorner(index, false); } CreateSprings(waterSpline); - Splash(2, 1); + Splash(2, 0.1f); } private void CreateSprings(Spline waterSpline) @@ -58,8 +58,12 @@ public class WaterShapeController : MonoBehaviour for(int idx=0;idx<_wavesCount+1; idx++) { int index = idx + 1; + + Smoothen(waterSpline, index); + GameObject wavePoint = Instantiate(wavePointPref, _wavePoints.transform, false); - wavePoint.transform.localPosition = waterSpline.GetPosition(index); + + wavePoint.transform.position = waterSpline.GetPosition(index); WaterSpring waterSpring=wavePoint.GetComponent(); waterSpring.Init(_spriteShapeController); _springs.Add( waterSpring ); @@ -67,6 +71,33 @@ public class WaterShapeController : MonoBehaviour } } + private void Smoothen(Spline waterSpline, int index) + { + Vector3 position = waterSpline.GetPosition(index); + Vector3 positionPrev = position; + Vector3 positionNext = position; + if (index > 1) + { + positionPrev = waterSpline.GetPosition(index - 1); + } + if (index - 1 <= _wavesCount) + { + positionNext = waterSpline.GetPosition(index + 1); + } + + Vector3 forward = gameObject.transform.forward; + + float scale = Mathf.Min((positionNext - position).magnitude, (positionPrev - position).magnitude) * 0.33f; + + Vector3 leftTangent = (positionPrev - position).normalized * scale; + Vector3 rightTangent = (positionNext - position).normalized * scale; + + SplineUtility.CalculateTangents(position, positionPrev, positionNext, forward, scale, out rightTangent, out leftTangent); + + waterSpline.SetLeftTangent(index, leftTangent); + waterSpline.SetRightTangent(index, rightTangent); + } + private void UpdateSprings() { int springsCount = _springs.Count; @@ -94,7 +125,7 @@ public class WaterShapeController : MonoBehaviour } } - // On Enable for example purposes + //On Enable for example purposes void OnEnable() { StartCoroutine(CreateWaves()); @@ -124,6 +155,7 @@ public class WaterShapeController : MonoBehaviour foreach (WaterSpring spring in _springs) { spring.WaveSpringUpdate(_springStiffness, _dampening); + spring.WavePointUpdate(); } UpdateSprings(); } diff --git a/Assets/Scripts/WaterSpring.cs b/Assets/Scripts/WaterSpring.cs index 066743c..fe92b9a 100644 --- a/Assets/Scripts/WaterSpring.cs +++ b/Assets/Scripts/WaterSpring.cs @@ -23,7 +23,7 @@ public class WaterSpring : MonoBehaviour Height = transform.localPosition.y; } - public void WavePointUpdate(int level) + public void WavePointUpdate() { if (_spriteShapeController != null) {