- Home /
Density (physic)
I need to read density data of a object. I have water. And when my object, for example cube, hits to water, I need to read the density and gravity to know it will float or not. I looked and I just saw SetDensity. Thank you for your supports and helps.
void OnTriggerEnter2D(Collider2D Hit)
{
if (Hit.rigidbody2D != null)
{
//read datas and force (buoyancy)
}
Note:The water system is from a site.
Answer by Owen-Reynolds · Nov 09, 2014 at 06:04 PM
I don't think the built-in physics system will be any help. Objects don't have a density, only a mass. If you read the setDensity command, it even says that it merely sets the mass.
For example, say you have a 1x1x1 wood cube with mass of 1.5. In normal Unity, a new 2x2x1 cube starts with a mass of 1, so acts like a Star Trek foam rock. You have to manually figure the size is 4, and assign mass 4*1.5=6 to it. setDensity
is just a shortcut for that.
Think the only way to do what you want is to store your own "density" in a script (for objects and water,) look up how bouyancy works, and do all the math yourself (maybe just a simple lessThan.) Also, rewatch old "does it float" segments from Letterman.
Your answer
Follow this Question
Related Questions
useAutoMass and child objects 1 Answer
Getting device resolution & density with Unity 1 Answer
Low grass density 0 Answers
How to adjust the screen for many types of screens in Android? 1 Answer
Wrong UI Size while create at code 0 Answers