Add parallax scrolling to level

This commit is contained in:
Sweet Tini
2020-02-02 11:01:59 -05:00
parent 7875611cba
commit e372a00d84
2 changed files with 26 additions and 13 deletions

View File

@@ -4,24 +4,37 @@ using UnityEngine;
public class ParallaxBackground : MonoBehaviour public class ParallaxBackground : MonoBehaviour
{ {
public Camera camera; [SerializeField] Camera baseCamera;
public SpriteRenderer renderer; [SerializeField] SpriteRenderer baseRenderer;
public Vector2 scrollRate = Vector2.one * .4f; public Vector2 scrollRate = Vector2.one * .4f;
Vector2 tileSize;
Vector2 offset = new Vector2(8f, 7.5f);
// Start is called before the first frame update // Start is called before the first frame update
void Start() 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 // Update is called once per frame
void Update() void Update()
{ {
//var currentPos = var depth = baseRenderer.transform.position.z;
var basePosition = (Vector2)baseCamera.transform.position - (offset * new Vector2(1f, -1f));
//var offset = new Vector3(8f, -7.5f, 0f); var scrollOffset = baseCamera.transform.position * scrollRate;
scrollOffset = new Vector2(scrollOffset.x % tileSize.x, scrollOffset.y % tileSize.y);
//renderer.transform.position = camera.transform.position + ((camera.transform.position * new Vector3(scrollRate.x, scrollRate.y, 0f)) - offset);
var position = basePosition - scrollOffset - tileSize * new Vector2(1, -1);
baseRenderer.transform.position = new Vector3(position.x, position.y, depth);
} }
} }

View File

@@ -47677,14 +47677,14 @@ SpriteRenderer:
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0 m_SortingLayerID: 1067504601
m_SortingLayer: 0 m_SortingLayer: -1
m_SortingOrder: 0 m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: e33008ddf5593464c90eced40f3f28e8, type: 3} m_Sprite: {fileID: 21300000, guid: e33008ddf5593464c90eced40f3f28e8, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0 m_FlipX: 0
m_FlipY: 0 m_FlipY: 0
m_DrawMode: 0 m_DrawMode: 2
m_Size: {x: 16, y: 16} m_Size: {x: 16, y: 16}
m_AdaptiveModeThreshold: 0.5 m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0 m_SpriteTileMode: 0
@@ -47703,8 +47703,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: af4fa3c5d20488d4fa39fb11819d3f97, type: 3} m_Script: {fileID: 11500000, guid: af4fa3c5d20488d4fa39fb11819d3f97, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
camera: {fileID: 1337282922} baseCamera: {fileID: 1337282922}
renderer: {fileID: 1727766210} baseRenderer: {fileID: 1727766210}
scrollRate: {x: 0.4, y: 0.4} scrollRate: {x: 0.4, y: 0.4}
--- !u!1 &1895829829 --- !u!1 &1895829829
GameObject: GameObject: