Comments and answers for "How are BounceCombine values combined?"
http://answers.unity.com/questions/822183/how-are-bouncecombine-values-combined.html
The latest comments and answers for the question "How are BounceCombine values combined?"Comment by VesuvianPrime on VesuvianPrime's answer
http://answers.unity.com/comments/852709/view.html
Thank you so much, and apologies for the late reply!Fri, 12 Dec 2014 02:00:39 GMTVesuvianPrimeAnswer by Bunny83
http://answers.unity.com/answers/822248/view.html
Well, collisions follow the usual [equatation][1] for real collisions. CR is the bounciness factor. This factor seems to be determined by this logic:
float GetFactor(PhysicMaterial aM1, PhysicMaterial aM2)
{
if (aM1.bounceCombine == PhysicMaterialCombine.Maximum || aM2.bounceCombine == PhysicMaterialCombine.Maximum)
return Mathf.Max(aM1.bounciness, aM2.bounciness);
if (aM1.bounceCombine == PhysicMaterialCombine.Multiply || aM2.bounceCombine == PhysicMaterialCombine.Multiply)
return aM1.bounciness * aM2.bounciness;
if (aM1.bounceCombine == PhysicMaterialCombine.Minimum || aM2.bounceCombine == PhysicMaterialCombine.Minimum)
return Mathf.Min(aM1.bounciness, aM2.bounciness);
return (aM1.bounciness + aM2.bounciness)*0.5f;
}
So the 4 possible values for the combine method have a strict order:
Maximum > Multiply > Minimum > Average
Unity simply picks the combine method that is more to the left.
At least that's what my tests concluded in :)
[1]: http://en.wikipedia.org/wiki/Coefficient_of_restitution#Speeds_after_impactSun, 02 Nov 2014 00:12:10 GMTBunny83