Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 /
avatar image
0
Question by gsus725 · Jan 19, 2015 at 04:08 AM · waterfloatingbuoyancy

Making an object float in water

 var gravity=Vector3.zero;
 var target_gravity=Vector3(0,-10,0);
 var water_level=65f;
 
 function Update(){
 
     var surface_distance=water_level-transform.position.y;
         
     target_gravity=Vector3(0,-10,0); //you are above water, do normal gravity
     if(surface_distance>0) target_gravity=Vector3(0,10,0); //you are underwater, reverse target gravity
     
     gravity=Vector3.Lerp(gravity,target_gravity,2 * Time.deltaTime);
     
     rigidbody.MovePosition(transform.position + (gravity * Time.deltaTime));
     }

I have made this simple water floating script by just reversing gravity when a person goes above or below the water surface, and it works, except that when the object finally starts to settle down near the surface (stops bobbing up and down so much) it just sort of jitters there. Because gravity is switching between +/- small amounts.

My question is what would you do to this code to make the bobbing of the object more realistic when it finally starts to settle on the surface? I'm stumped so far

Comment
Add comment
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

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Kiwasi · Jan 19, 2015 at 05:03 AM

What I do for water physics is use the colliders bonding box to figure out what percentage is underwater. Then I add a force upwards based on that percentage.

Have a look at Pond Wars (linked in my profile) to see the effect in action.

Comment
Add comment · Show 1 · 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
avatar image gsus725 · Jan 19, 2015 at 07:46 AM 0
Share

That seems like a good system but if I'm not mistaken that would still suffer from "jitters" as the object begins to settle down on the water's surface, unless a dampening mechanism is added.

Is there any sort of way I can fix this jitter problem starting with the code I already use?

avatar image
0

Answer by SavaTim · Jun 12, 2019 at 11:18 PM

Look This https://youtu.be/W7tur5kpy6I

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

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.

Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Object buoyancy in water on different water levels? 1 Answer

Having trouble with player boat movement with buoyancy pack 0 Answers

Bouyancy Effector Issues 0 Answers

Pro Water - Matching Rotation 0 Answers

Bouyancy timing issue 0 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