diff --git a/Assets/ParallaxBackground.cs b/Assets/ParallaxBackground.cs index 17dc4f0..a79546e 100644 --- a/Assets/ParallaxBackground.cs +++ b/Assets/ParallaxBackground.cs @@ -4,24 +4,37 @@ using UnityEngine; public class ParallaxBackground : MonoBehaviour { - public Camera camera; - public SpriteRenderer renderer; + [SerializeField] Camera baseCamera; + [SerializeField] SpriteRenderer baseRenderer; public Vector2 scrollRate = Vector2.one * .4f; + Vector2 tileSize; + Vector2 offset = new Vector2(8f, 7.5f); + // Start is called before the first frame update void Start() { - + baseRenderer.transform.position = new Vector3( + baseCamera.transform.position.x - offset.x, + baseCamera.transform.position.y - offset.y, + baseRenderer.transform.position.z); + + tileSize = baseRenderer.size; + + baseRenderer.size = new Vector2( + (Mathf.Ceil(tileSize.x / (offset.x * 2f)) + 2f) * tileSize.x, + (Mathf.Ceil(tileSize.y / (offset.y * 2f)) + 2f) * tileSize.y); } // Update is called once per frame void Update() { - //var currentPos = - - //var offset = new Vector3(8f, -7.5f, 0f); - - //renderer.transform.position = camera.transform.position + ((camera.transform.position * new Vector3(scrollRate.x, scrollRate.y, 0f)) - offset); + var depth = baseRenderer.transform.position.z; + var basePosition = (Vector2)baseCamera.transform.position - (offset * new Vector2(1f, -1f)); + var scrollOffset = baseCamera.transform.position * scrollRate; + scrollOffset = new Vector2(scrollOffset.x % tileSize.x, scrollOffset.y % tileSize.y); + var position = basePosition - scrollOffset - tileSize * new Vector2(1, -1); + baseRenderer.transform.position = new Vector3(position.x, position.y, depth); } } diff --git a/Assets/Scenes/LevelOne.unity b/Assets/Scenes/LevelOne.unity index 01ba314..34fc486 100644 --- a/Assets/Scenes/LevelOne.unity +++ b/Assets/Scenes/LevelOne.unity @@ -167,7 +167,6 @@ MonoBehaviour: m_EditorClassIdentifier: player: {fileID: 1671840921} camera: {fileID: 1337282922} - music: {fileID: 0} tiles: - {fileID: 11400000, guid: 1f7bfa5ee72002646806268d14bfeb3b, type: 2} - {fileID: 11400000, guid: e85f8319cdf4358448a9002845cfbd5a, type: 2} @@ -46994,7 +46993,7 @@ AudioSource: Mute: 0 Spatialize: 0 SpatializePostEffects: 0 - Priority: 219 + Priority: 128 DopplerLevel: 1 MinDistance: 1 MaxDistance: 500 @@ -47330,7 +47329,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1671840916} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 18.5, y: 8, z: 0} + m_LocalPosition: {x: 178, y: 8, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1008122163} @@ -47692,84 +47691,6 @@ Tilemap: e31: 0 e32: 0 e33: 1 ---- !u!4 &1727766209 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1882958979} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -7.8, y: 7.65, z: 10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1146013793} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &1727766210 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1882958979} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} - 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: 1067504601 - m_SortingLayer: -1 - m_SortingOrder: 0 - m_Sprite: {fileID: 21300000, guid: e33008ddf5593464c90eced40f3f28e8, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 16, y: 16} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 ---- !u!114 &1727766211 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1882958979} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: af4fa3c5d20488d4fa39fb11819d3f97, type: 3} - m_Name: - m_EditorClassIdentifier: - camera: {fileID: 1337282922} - renderer: {fileID: 1727766210} - scrollRate: {x: 0.4, y: 0.4} --- !u!1001 &1879087608 PrefabInstance: m_ObjectHideFlags: 0 @@ -47897,6 +47818,84 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!4 &1727766209 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1727766208} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -7.8, y: 7.65, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1146013793} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1727766210 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1727766208} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + 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: 1067504601 + m_SortingLayer: -1 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: e33008ddf5593464c90eced40f3f28e8, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 2 + m_Size: {x: 16, y: 16} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &1727766211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1727766208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: af4fa3c5d20488d4fa39fb11819d3f97, type: 3} + m_Name: + m_EditorClassIdentifier: + baseCamera: {fileID: 1337282922} + baseRenderer: {fileID: 1727766210} + scrollRate: {x: 0.4, y: 0.4} --- !u!1 &1895829829 GameObject: m_ObjectHideFlags: 0