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)
}
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.