1
0
Fork 0
crew-of-one/Assets/Scripts/backgroundRepeater.cs
Ava Gaiety Wroten 0cc43d7fb3 Initial Commit
2020-07-30 13:17:01 -05:00

51 lines
1.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class backgroundRepeater : MonoBehaviour
{
public Transform prefab;
Vector3 cameraOffset;
float pixelsPerUnit;
float scale;
int backgroundTilesX;
int backgroundTilesY;
void Start()
{
CalculateCameraOffset();
CalculateBackgroundTilesNeeded();
CreateGameObjects();
}
void CalculateCameraOffset()
{
cameraOffset = Camera.main.ScreenToWorldPoint(Vector3.zero) + new Vector3(0, 1, 10);
}
void CalculateBackgroundTilesNeeded()
{
SpriteRenderer spriteRenderer = prefab.GetComponent<SpriteRenderer>();
pixelsPerUnit = spriteRenderer.sprite.pixelsPerUnit;
scale = spriteRenderer.transform.localScale.x;
backgroundTilesX = (int)(Screen.width / (pixelsPerUnit * scale)) + 1;
backgroundTilesY = (int)(Screen.height / (pixelsPerUnit * scale)) + 1;
}
void CreateGameObjects()
{
for (int x = 0; x < backgroundTilesX; x++)
{
CreateGameObject(x);
for (int y = 0; y < backgroundTilesY; y++) CreateGameObject(x, y);
}
}
void CreateGameObject(float x = 0, float y = 0)
{
Instantiate(prefab, new Vector3(x * scale, y * scale, 0) + cameraOffset, Quaternion.identity);
}
}