コード例 #1
0
 public void UpdateWorld()
 {
     world.SetDampingFactors(angularDamping, linearDamping);
     world.SetInactivityThreshold(sleepAngularVelocity, sleepVelocity, .5f);
     if (defaultMaterial != null)
     {
         defaultPhysicsMaterial = defaultMaterial.ToMaterial();
     }
 }
コード例 #2
0
    private RigidBody CreateBody()
    {
        Material material;

        if (JMaterial != null)
        {
            material = JMaterial.ToMaterial();
        }
        else if (JPhysics.defaultPhysicsMaterial != null)
        {
            material = JPhysics.defaultPhysicsMaterial;
        }
        else
        {
            material = new Material();
        }

        var result = new RigidBody(Shape, material);

        result.AffectedByGravity = AffectedByGravity;
        result.IsStatic          = IsStatic;
        result.AllowDeactivation = AllowDeactivation;
        result.Damping           = (LinearDamping ? RigidBody.DampingType.Linear : 0) | (AngularDamping ? RigidBody.DampingType.Angular : 0);
        result.EnableDebugDraw   = EnableDebugDraw;

        if (isKinematic)
        {
            result.AffectedByGravity = false;
            result.Mass = 1e6f;
        }
        else if (Mass > 0)
        {
            result.Mass = Mass;
        }
        else
        {
            result.SetMassProperties();
        }

        return(result);
    }