本文整理汇总了C#中HkShape.AddReference方法的典型用法代码示例。如果您正苦于以下问题:C# HkShape.AddReference方法的具体用法?C# HkShape.AddReference怎么用?C# HkShape.AddReference使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HkShape
的用法示例。
在下文中一共展示了HkShape.AddReference方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RequestShapeBlockingInternal
private void RequestShapeBlockingInternal(int x, int y, int z, out HkShape shape, out HkReferencePolicy refPolicy, bool lod1physics)
{
ProfilerShort.Begin("MyVoxelPhysicsBody.RequestShapeBlocking");
if (!m_bodiesInitialized) CreateRigidBodies();
int lod = lod1physics ? 1 : 0;
var cellCoord = new MyCellCoord(lod, new Vector3I(x, y, z));
shape = HkShape.Empty;
// shape must take ownership, otherwise shapes created here will leak, since I can't remove reference
refPolicy = HkReferencePolicy.TakeOwnership;
//MyPrecalcComponent.QueueJobCancel(m_workTracker, cellCoord);
if (m_voxelMap.MarkedForClose)
{
ProfilerShort.End();
return;
}
if (MyDebugDrawSettings.DEBUG_DRAW_REQUEST_SHAPE_BLOCKING)
{
BoundingBoxD aabb;
MyVoxelCoordSystems.GeometryCellCoordToWorldAABB(m_voxelMap.PositionLeftBottomCorner, ref cellCoord, out aabb);
MyRenderProxy.DebugDrawAABB(aabb, lod1physics ? Color.Yellow : Color.Red, 1, 1, true);
}
ProfilerShort.Begin("Generating geometry");
MyIsoMesh geometryData = CreateMesh(m_voxelMap.Storage, cellCoord);
ProfilerShort.End();
if (!MyIsoMesh.IsEmpty(geometryData))
{
ProfilerShort.Begin("Shape from geometry");
shape = CreateShape(geometryData, true);
shape.AddReference();
var args = new MyPrecalcJobPhysicsPrefetch.Args() {GeometryCell = cellCoord, TargetPhysics = this, Tracker = m_workTracker, SimpleShape = shape};
MyPrecalcJobPhysicsPrefetch.Start(args);
m_needsShapeUpdate = true;
ProfilerShort.End();
}
ProfilerShort.End();
}