ParallaxBackground adında bir script dosyası oluşturuyoruz;
using UnityEngine;
public class ParallaxBackground : MonoBehaviour
{
private float length, startPos;
public GameObject cam;
public float parallaxEffect;
private void Start()
{
startPos = transform.position.x;
length = GetComponent().bounds.size.x;
}
private void FixedUpdate()
{
float temp = (cam.transform.position.x * (1 - parallaxEffect));
float dist = (cam.transform.position.x * parallaxEffect);
transform.position = new Vector3(startPos + dist, transform.position.y, transform.position.z);
if (temp > startPos + length) startPos += length;
else if (temp < startPos - length) startPos -= length;
}
}
Sonra Camera objesinin altında arka planlarımızı tutacak bir parent objesi oluşturup içerisine arka planlarımızı atıyoruz.
Örnekte 5 tane olduğundan en yakında duracak olanın Additional Settings>Order in Layer değerlerini sırasıyla 5, 4, 3, 2, 1 şeklinde ayarladım.
5 arka planın hepsini seçip Duplicate edip X değerini 18 yaptım ardından tekrar Duplicate edip bu sefer X değerini -18 yaptım.
Her kopyayı ana objenin altında topladım;
Ana objelere oluşturduğumuz ParallaxBackground scriptini atadım. Cam alanına kamerayı atadım Parallax Effect kısmına ise;
değerlerini verdim.
Oyunu başlatıp kameramızı x ekseninde hareket ettirirsek göreceğimiz sonuç;
bu yazıda ki görseller penusbmic tarafından hazırlanmıştır.