public void Convert(RigidBodyType type, float mass) { PhysicsHandler.RemoveRigidBody(Body); // set mass properties if (type != RigidBodyType.Dynamic) { mass = 0; } Body.SetMassProps(mass, Body.CollisionShape.CalculateLocalInertia(mass)); // set body type switch (type) { case RigidBodyType.Static: Body.CollisionFlags = CollisionFlags.StaticObject; Body.ForceActivationState(ActivationState.ActiveTag); break; case RigidBodyType.Kinematic: Body.CollisionFlags = CollisionFlags.StaticObject | CollisionFlags.KinematicObject; Body.ForceActivationState(ActivationState.DisableDeactivation); break; case RigidBodyType.Dynamic: Body.CollisionFlags = CollisionFlags.None; Body.ForceActivationState(ActivationState.ActiveTag); Body.Activate(); break; } PhysicsHandler.AddRigidBody(Body); }
public RigidBody(GameObject go, RigidBodyType rbt, int uo) : base(uo, "rigidBody") { transform = (Transform)go.ComponentHandler.GetComponent("transform"); bodyType = rbt; angularVelocity = 0; moveVelocity = new Vector2(0, 0); mass = 0; }
private void UpdateBodyType(RigidBodyType bodyType) { if (bodyType == RigidBodyType.Kinematic) { entity.BecomeKinematic(); } else { entity.BecomeDynamic(Mass <= 0 ? 1 : Mass); } }
public void Create(RigidBodyCreateInfo info) { unsafe { if (_Handler != null) { _Shape = info.eShape; _Type = info.eType; _IsCreated = true; CreateRigidBody_EX(ref info, *_Handler); } } }
public string Path; // fo custom geometry public void CreateDefault() { Size = new Vector3(1, 1, 1); eShape = RigidBodyShape.Box; eType = RigidBodyType.Dynamic; Mass = 1.0f; Density = 0.5f; Friction = 0.5f; Restitution = 0.0f; LinearDamping = 0.0f; AngularDamping = 0.0f; RollingFriction = 0.1f; SpinningFriction = 0.1f; }
public void SetRigidBody(float mass, RigidBodyType type, Vector3 dims) { ScapeInternal.InstancedStaticObject.setInstanceRigidBodyFromDetails(objectPtr, mass, (int)type, dims.X, dims.Y, dims.Z); }
//checks if type is in collisions types list public bool CollisionTypeMatches(RigidBodyType type) { return(((uint)type & collisionsMask) != 0); }