private void UpdateParallax(object sender, ParaCamArgs e) { float zfactor = 7f / e.orthoSize; //kinda arbitrary, but parallax should be less if camera is zoomed out Vector3 newPos = transform.position; if (moveHorizontally) { newPos.x += e.dx * horizontalFactor; } if (moveVertically) { newPos.y += e.dy * verticalFactor; } transform.position = newPos; }
// Update is called once per frame void Update() { float x = transform.position.x; float y = transform.position.y; if ((Mathf.Abs(x - mX) > epsilon || Mathf.Abs(y - mY) > epsilon) && ChangeHandler != null) { ParaCamArgs e = new ParaCamArgs(); e.dx = x - mX; e.dy = y - mY; e.orthoSize = camComponent.orthographicSize; ChangeHandler(this, e); } mX = x; mY = y; }