I’m trying to follow a tutorial on youtube but my parallaxing is moving by itself even if I don’t move. Here is the code, the tutorial uses a orthographic camera.
using UnityEngine;
using System.Collections;
public class Parallaxing : MonoBehaviour {
public Transform[] backgrounds; //Array (List) of all the backgrounds and foregraounds to be parallaxed
private float[] parallaxScales; //The proportions of the camera's movement to move the backgrounds by
public float smoothing = 1f; //How smooth the parallax is going to be. Make sure to set this above 0
private Transform cam; //Reference to the main Camera's tranform
private Vector3 previousCamPos; //The Position of the camera in previous frame
//is called before start(). Great for referencing
void Awake () {
//set up the camera reference
cam = Camera.main.transform;
}
//Use this for initializing
void Start () {
//The previous frame had the current frame's camera position
previousCamPos = cam.position;
//Assaigning corresponding parallaxScales
parallaxScales = new float[backgrounds.Length];
for (int i = 0; i < backgrounds.Length; i++) {
parallaxScales <em>= backgrounds_.position.z*-1;_</em>
* }*
* }*
* //Update is called once per frame*
* void Update () {*
* //For each Background*
* for (int i = 0; i < backgrounds.Length; i++) {*
* //The parallax is the opposite of the camera movement because the previous frame multiplied by the scale*
_ float parallax = (previousCamPos.x = cam.position.x) * parallaxScales*;*_
* //set a target x position which is the current postion plus the parallax*
_ float backgroundTargetPosX = backgrounds*.position.x + parallax;*_
* // create a target postion which is the backgrounds current position with it’s target x postion*
Vector3 backgroundTargetPos = new Vector3 (backgroundTargetPosX, backgrounds_.position.y, backgrounds*.position.z);
//fade between current position and the target position using lerp*
backgrounds.position = Vector3.Lerp (backgrounds.position, backgroundTargetPos, smoothing * Time.deltaTime);_
* }*
* //set the previous camera position to the camera’s position at the end of the frame*
* previousCamPos = cam.position;*
* }*
}