• 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 /
avatar image
Question by bbeckford · May 01, 2014 at 11:58 AM · cameramathsmoothdampsmoothfollowmove speed

Smooth Follow Camera that Keeps Up

Hi all,

I'm working on a constant runner sidescrolling game, the player is constantly moving left to right at an ever-increasing speed, and when the player jumps he gains some extra speed for a limited time.

My camera follow code is as follows:

 float dampTime = 0.2f;
 Vector3 positionVelocity = Vector3.zero;
 
 void LateUpdate() {

     transform.position = Vector3.SmoothDamp(transform.position, targetPos, ref positionVelocity, dampTime);
 }

Now t$$anonymous$$s works fine at low speed, the camera follows smoothly when the player jumps. However as the player's speed increases the camera gets more and more left be$$anonymous$$nd, with the player moving more and more to the right hand side of the screen.

I want to keep the distance between the player and the right hand side of the screen constant, nomatter $$anonymous$$s running speed, but also keep a smooth camera when he gains the short speed boost on jumping.

How is t$$anonymous$$s possible?

Thanks!

Comment

People who like this

0 Show 1
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 _dns_ · May 01, 2014 at 02:00 PM 0
Share

Hi, have you tried reducing the value of dampTime when the speed is high? Maybe try interpolate the dampTime value depending on the velocity. For example, if you have a LowVelocityDamp = 0.2f, a HighVelocityDamp = 0.1f, a MaxVelocity = ( your max positionVelocity.magnitude you can ever have). Then you use float currentDamp = Mathf.Lerp( LowVelocityDamp, HighVelocityDamp, positionVelocity.magnitude / MaxVelocity ). Then use this currentDamp in your SmoothDamp call. You can also have different values depending on your game state : with or without jump boosts or speed bonuses.

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

21 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

Related Questions

why target switching of smooth camera not very smooth ? 0 Answers

Changing Targets - Smooth Damping X and Z on SmoothFollowCamera 0 Answers

SmoothFollow to play catchup to player position 1 Answer

Mathf.SmoothDamp happens instantly 1 Answer

Smooth camera shift, Lerp? SmoothShift? 2 Answers


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