本文整理汇总了C#中PhysicsScene.CreateBody方法的典型用法代码示例。如果您正苦于以下问题:C# PhysicsScene.CreateBody方法的具体用法?C# PhysicsScene.CreateBody怎么用?C# PhysicsScene.CreateBody使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PhysicsScene
的用法示例。
在下文中一共展示了PhysicsScene.CreateBody方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnCreateScene
protected override void OnCreateScene( Mesh[] meshes, MeshObject[] meshObjects,
Light[] lights, ColorValue shadowColor, bool calculateShadows )
{
//create separated physics scene
physicsScene = PhysicsWorld.Instance.CreateScene( "Static Lighting" );
//initialize contact group
physicsScene.SpecialContactGroupsEnabled = true;
physicsScene.SetupSpecialContactGroups( 1, 1, true );
Dictionary<Mesh, string> meshPhysicsMeshNames = new Dictionary<Mesh, string>();
//register physics custom mesh names
foreach( Mesh mesh in meshes )
{
string customMeshName = PhysicsWorld.Instance.AddCustomMeshGeometry(
mesh.Positions, mesh.Indices, null, MeshShape.MeshTypes.TriangleMesh, 0, 0 );
meshPhysicsMeshNames.Add( mesh, customMeshName );
}
//create bodies
foreach( MeshObject meshObject in meshObjects )
{
Body body = physicsScene.CreateBody();
body.Static = true;
body.Position = meshObject.Position;
body.Rotation = meshObject.Rotation;
body.UserData = meshObject;
MeshShape shape = body.CreateMeshShape();
shape.ContactGroup = contactGroup;
shape.MeshName = meshPhysicsMeshNames[ meshObject.Mesh ];
shape.MeshScale = meshObject.Scale;
body.PushedToWorld = true;
}
//lights
{
this.lights = new MyLight[ lights.Length ];
for( int n = 0; n < lights.Length; n++ )
{
Light light = lights[ n ];
MyLight myLight = null;
PointLight pointLight = light as PointLight;
if( pointLight != null )
myLight = new MyPointLight( pointLight );
SpotLight spotLight = light as SpotLight;
if( spotLight != null )
myLight = new MySpotLight( spotLight );
DirectionalLight directionalLight = light as DirectionalLight;
if( directionalLight != null )
myLight = new MyDirectionalLight( directionalLight );
if( myLight == null )
Log.Fatal( "SimpleStaticLightingCalculationWorld.OnCreateScene: not implemented light type." );
this.lights[ n ] = myLight;
this.lights[ n ].Initialize();
}
}
this.shadowColor = shadowColor;
this.calculateShadows = calculateShadows;
}