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 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);
}
}

View File

@@ -47677,14 +47677,14 @@ SpriteRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 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_DrawMode: 2
m_Size: {x: 16, y: 16}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
@@ -47703,8 +47703,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: af4fa3c5d20488d4fa39fb11819d3f97, type: 3}
m_Name:
m_EditorClassIdentifier:
camera: {fileID: 1337282922}
renderer: {fileID: 1727766210}
baseCamera: {fileID: 1337282922}
baseRenderer: {fileID: 1727766210}
scrollRate: {x: 0.4, y: 0.4}
--- !u!1 &1895829829
GameObject: