// Create a mask given a selection of layers. public static uint CreateMask(params int[] collisionLayers) { uint mask = 0; for (var i = 0; i < collisionLayers.Length; ++i) { var layer = collisionLayers[i]; if (layer >= 0 && layer <= 32) { mask |= (uint)1 << layer; continue; } SafetyChecks.ThrowArgumentException("Collision mask layers must be in the range 0-31."); return(default);
// Create a Dynamic body with the specified mass. public static PhysicsMass CreateDynamic(MassProperties massProperties, float mass) { if (!(mass <= 0f) && math.isfinite(mass)) { return new PhysicsMass { InverseMass = math.rcp(mass), InverseInertia = massProperties.MassDistribution.InverseInertia, LocalCenterOfMass = massProperties.MassDistribution.LocalCenterOfMass, } } ; SafetyChecks.ThrowArgumentException("Cannot specify less than zero or Infinite/NaN.", "mass"); return(default);