Add parallax scrolling to level
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user