예제 #1
0
        public void Force(Vector3 direction, ForceType forceType)
        {
            switch (forceType)
            {
            case ForceType.CentralForce:
                rigidBodyObject.ApplyCentralForce(direction);
                break;

            case ForceType.CentralImpulse:
                rigidBodyObject.ApplyCentralImpulse(direction);
                break;

            case ForceType.Torque:
                rigidBodyObject.ApplyTorque(direction);
                break;

            case ForceType.TorqueImpulse:
                rigidBodyObject.ApplyTorqueImpulse(direction);
                break;

            default:
                rigidBodyObject.ApplyForce(direction, gameObject._transform.Position);
                break;
            }
        }
예제 #2
0
        protected override void Apply(RigidBody obj, int slice)
        {
            Vector3D pos = this.FPosition[slice];
            Vector3D force = this.FForce[slice];

            obj.ApplyForce(new Vector3((float)force.x, (float)force.y, (float)force.z),
                new Vector3((float)pos.x, (float)pos.y, (float)pos.z));
        }
예제 #3
0
 public unsafe static void ApplyForce(this RigidBody obj, ref OpenTK.Vector3 force, ref OpenTK.Vector3 rel_pos)
 {
     fixed(OpenTK.Vector3 *forcePtr = &force)
     {
         fixed(OpenTK.Vector3 *rel_posPtr = &rel_pos)
         {
             obj.ApplyForce(ref *(BulletSharp.Math.Vector3 *)forcePtr, ref *(BulletSharp.Math.Vector3 *)rel_posPtr);
         }
     }
 }