Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
This question was closed Mar 31, 2019 at 03:24 PM by pako for the following reason:

The question is answered, right answer was accepted

avatar image
0
Question by SoshJam · Mar 30, 2019 at 05:21 PM · c#spritemathbackgroundparallax

Parallax effect for background [C#] just a simple math error but I can't fix it

I've been trying to solve this problem on my own for a couple hours and I can't seem to figure it out, so I thought I'd ask it here.

I have three background layers (with layer3 being the farthest) and I want them to scroll depending on where you are in the level. (e.g. when in the exact center they all are centered, on the left their left edges match the left side of the screen, etc.)
However, instead they all start perfectly centered with the camera, when they should have their left edges aligned with the left side of the screen. (the camera is at it's farthest left position at the beginning)
Then, as the camera moves, they move super fast, like in the screenshots provided.
This is about ten units into the level and you can already see their edges. pic 1
Then at just over halfway through the level, they are way offscreen. (They should be about centered here.)
pic 2
How can I edit my math to make it work correctly?


Code

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class BackgroundHandler : MonoBehaviour {
 
     float lC, rC, tC, bC, hDist, vDist, hMid, vMid, hSpan, vSpan;
     float sprSize;
     SpriteRenderer rend;
     Transform cam;
 
     void Start () {
         rend = GetComponent<SpriteRenderer>();
         cam = GameObject.Find("Main Camera").transform;
         if (rend.sprite.name == "layer3")
         {
             sprSize = 2;
         }
         if (rend.sprite.name == "layer2")
         {
             sprSize = 3;
         }
         if (rend.sprite.name == "layer1")
         {
             sprSize = 4;
         }
         lC = GameObject.Find("PConstLeft").transform.position.x + 6.5f;
         rC = GameObject.Find("PConstRight").transform.position.x - 6.5f;
         tC = GameObject.Find("PConstUp").transform.position.y - 5f;
         bC = GameObject.Find("PConstDown").transform.position.y + 5f;
         hSpan = rC - lC;
         vSpan = tC - bC;
         hMid = lC + (hSpan / 2);
         vMid = bC + (vSpan / 2);
     }
     
     void Update () {
         hDist = -(hMid - cam.position.x);
         vDist = -(vMid - cam.position.y);
 
         transform.position = new Vector2(
             (hMid + lC + hDist) * sprSize,
             (vMid + bC + vDist) * sprSize
         );
     }
 }



Explanation:

lC, rC, bC, and`tC` are the extents of the camera movement, left, right, bottom and top.
hDist and vDist are the horizontal and vertical distances of the camera and middle of the scene.
hMid and vMid are the midpoints of the constraints. hSpan and vSpan are the total distance from constraint to constraint. sprSize is the size (in screens) of the background image.

If anyone can help with my faulty math or has any clarifying questions please let me know!

screen-shot-2019-03-30-at-24504-pm.png (145.4 kB)
screen-shot-2019-03-30-at-24431-pm.png (236.1 kB)
Comment
Add comment · Show 4
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image pako · Mar 30, 2019 at 08:37 PM 0
Share

@SoshJam you don't ask a question. i.e. why is the math wrong? What do you get when you run this code? $$anonymous$$aybe some some screenshots would help as well.

avatar image SoshJam pako · Mar 30, 2019 at 08:59 PM 0
Share

Okay, I added that. Thanks for telling me.

avatar image Bruno2907 · Mar 31, 2019 at 01:40 AM 0
Share

I think the problem may be with your "sprSize", try a lower value such as 0.2f ins$$anonymous$$d of 2
And layer 1 should have a lower value that layer 3.

avatar image pako · Mar 31, 2019 at 08:57 AM 0
Share

Still lots of info missing, plus you seem to be using sprSize, which you say is the "size of number of background screens", in lieu of "speed" (because it seems to me that you should be using speed at that point). Of course, speed should be higher for the front layers, which correspond to larger size, but I suspect that by using size the way you do, makes it difficult to adjust the layer speed to good values.


To be able to provide more help, I'd like to know the transform.position of all you constraints and camera (starting pos). Still, better than that, would be to upload (in OneDrive or something) a repro project, which I could take a look directly.

1 Reply

  • Sort: 
avatar image
0
Best Answer

Answer by SoshJam · Mar 31, 2019 at 01:36 PM

I fixed it on my own. What I did was calculate how far in percent the player was to the end of the level, and factored that in to the screen bounds and sprSize. It works.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Follow this Question

Answers Answers and Comments

615 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Multiple Cars not working 1 Answer

Infinite Parallax Background with no lineal velocity 3 Answers

3D Background Effect And Dynamic Parallax 1 Answer

Distribute terrain in zones 3 Answers

Problem with the scroll parallaxing 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges