本文整理汇总了C#中Sandbox.Engine.Physics.MyPhysicsBody.RemoveConstraints方法的典型用法代码示例。如果您正苦于以下问题:C# MyPhysicsBody.RemoveConstraints方法的具体用法?C# MyPhysicsBody.RemoveConstraints怎么用?C# MyPhysicsBody.RemoveConstraints使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sandbox.Engine.Physics.MyPhysicsBody
的用法示例。
在下文中一共展示了MyPhysicsBody.RemoveConstraints方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Weld
public void Weld(MyPhysicsBody other, bool recreateShape = true)
{
if (other.WeldInfo.Parent == this) //already welded to this
return;
if(other.IsWelded && !IsWelded)
{
other.Weld(this);
return;
}
if(IsWelded)
{
WeldInfo.Parent.Weld(other);
return;
}
ProfilerShort.Begin("Weld");
HkShape thisShape;
bool firstWelded = WeldInfo.Children.Count == 0;
if (firstWelded)
{
RemoveConstraints(RigidBody);
WeldedRigidBody = RigidBody;
thisShape = RigidBody.GetShape();
if (HavokWorld != null)
HavokWorld.RemoveRigidBody(RigidBody);
RigidBody = HkRigidBody.Clone(RigidBody);
if (HavokWorld != null)
HavokWorld.AddRigidBody(RigidBody);
HkShape.SetUserData(thisShape, RigidBody);
Entity.OnPhysicsChanged += WeldedEntity_OnPhysicsChanged;
WeldInfo.UpdateMassProps(RigidBody);
//Entity.OnClose += Entity_OnClose;
}
else
thisShape = GetShape();
other.Deactivate();
other.RemoveConstraints(other.RigidBody);//jn:TODO check if this is OK
var transform = other.RigidBody.GetRigidBodyMatrix() * Matrix.Invert(RigidBody.GetRigidBodyMatrix());
other.WeldInfo.Transform = transform;
other.WeldInfo.UpdateMassProps(other.RigidBody);
Debug.Assert(other.WeldedRigidBody == null);
other.WeldedRigidBody = other.RigidBody;
other.RigidBody = RigidBody;
other.WeldInfo.Parent = this;
other.ClusterObjectID = ClusterObjectID;
WeldInfo.Children.Add(other);
//if(recreateShape)
// RecreateWeldedShape(thisShape);
ProfilerShort.BeginNextBlock("OnPhysicsChanged");
//(other.Entity as MyEntity).RaisePhysicsChanged();
//other.Entity.OnPhysicsChanged += WeldedEntity_OnPhysicsChanged;
//Debug.Assert(other.m_constraints.Count == 0, "Constraints left in welded body");
ProfilerShort.BeginNextBlock("RemoveConstraints");
ProfilerShort.End();
OnWelded(other);
other.OnWelded(this);
}