public static void DestoryBody(PBody3D body, IParallelRigidbody3D rigidBody3D) { if (!initialized) { Initialize(); } if (rigidBodies.Contains(rigidBody3D)) { rigidBodies.Remove(rigidBody3D); } if (bodyDictionary.ContainsKey(body.BodyID)) { bodyDictionary.Remove(body.BodyID); } NativeParallel3D.DestroyBody(internalWorld.IntPointer, body.IntPointer); }
//3D body public static PBody3D AddBody( int bodyType, Fix64Vec3 position, Fix64Quat orientation, Fix64Vec3 linearDamping, Fix64Vec3 angularDamping, Fix64Vec3 gravityScale, bool fixedRotationX, bool fixedRotationY, bool fixedRotationZ, IParallelRigidbody3D rigidBody) { if (!initialized) { Initialize(); } UInt16 bodyID = 0; IntPtr m_NativeObject = NativeParallel3D.CreateBody( internalWorld.IntPointer, bodyType, position, orientation, linearDamping, angularDamping, gravityScale, fixedRotationX, fixedRotationY, fixedRotationZ, ref bodyID); PBody3D body = new PBody3D(m_NativeObject, bodyID, rigidBody as ParallelRigidbody3D, bodyExportSize); rigidBodies.Add(rigidBody); bodyDictionary[bodyID] = body; ReadNativeBody(body); return(body); }