CreateBodyBatch
Create a batch of bodies in the world.
Read time 3 minutesLast updated 10 days ago
Definition
- Type: Method
- Namespace: Unity.U2D.Physics
- Assembly: UnityEngine.PhysicsCore2DModule
CreateBodyBatch(PhysicsBodyDefinition, int, Allocator)
Create a batch of bodies in the world.
public NativeArray<PhysicsBody> CreateBodyBatch(PhysicsBodyDefinition definition, int bodyCount, Allocator allocator = Allocator.Temp)
Parameters
The body definition to use.
The number of bodies to create.
The memory allocator to use for the results. This can only be Allocator.Temp, Allocator.TempJob or Allocator.Persistent.
Returns
Type | Description |
|---|---|
| NativeArray<PhysicsBody> | The created bodies. This NativeArray must be disposed of after use otherwise leaks will occur. The exception to this is if the array is empty. |
Remarks
Use this method to create many bodies that share the same configuration, instead of calling PhysicsWorld.CreateBody in a loop.
Examples
// Create 500 bodies using a single definition.using UnityEngine;using Unity.Collections;using Unity.U2D.Physics;public class CreateBodyBatchExample : MonoBehaviour{ public PhysicsBodyDefinition bodyDefinition = PhysicsBodyDefinition.defaultDefinition; void Start() { PhysicsWorld world = PhysicsWorld.defaultWorld; using NativeArray<PhysicsBody> fiveHundredBodies = world.CreateBodyBatch(bodyDefinition, 500); }}
CreateBodyBatch(PhysicsBodyDefinition, int, Object, int, Allocator)
Create a batch of bodies in the world, assigning the given owner to every created body.
public NativeArray<PhysicsBody> CreateBodyBatch(PhysicsBodyDefinition definition, int bodyCount, Object owner, int ownerKey, Allocator allocator = Allocator.Temp)
Parameters
The body definition to use.
The number of bodies to create.
The owner object to assign to every created body. If null, no owner is assigned.
The owner key to assign. Must be non-zero when owner is not null. See PhysicsWorld.CreateOwnerKey.
The memory allocator to use for the results. This can only be Allocator.Temp, Allocator.TempJob or Allocator.Persistent.
Returns
Type | Description |
|---|---|
| NativeArray<PhysicsBody> | The created bodies. This NativeArray must be disposed of after use otherwise leaks will occur. The exception to this is if the array is empty. |
Remarks
See PhysicsBody.SetOwner.
CreateBodyBatch(ReadOnlySpan<PhysicsBodyDefinition>, Allocator)
Create a batch of bodies in the world.
public NativeArray<PhysicsBody> CreateBodyBatch(ReadOnlySpan<PhysicsBodyDefinition> definitions, Allocator allocator = Allocator.Temp)
Parameters
The definitions used to create the bodies. The number of bodies produced is implicitly controlled by the number of definitions in this span.
The memory allocator to use for the results. This can only be Allocator.Temp, Allocator.TempJob or Allocator.Persistent.
Returns
Type | Description |
|---|---|
| NativeArray<PhysicsBody> | The created bodies. This NativeArray must be disposed of after use otherwise leaks will occur. The exception to this is if the array is empty. |
CreateBodyBatch(ReadOnlySpan<PhysicsBodyDefinition>, Object, int, Allocator)
Create a batch of bodies in the world, assigning the given owner to every created body.
public NativeArray<PhysicsBody> CreateBodyBatch(ReadOnlySpan<PhysicsBodyDefinition> definitions, Object owner, int ownerKey, Allocator allocator = Allocator.Temp)
Parameters
The definitions used to create the bodies. The number of bodies produced is implicitly controlled by the number of definitions in this span.
The owner object to assign to every created body. If null, no owner is assigned.
The owner key to assign. Must be non-zero when owner is not null. See PhysicsWorld.CreateOwnerKey.
The memory allocator to use for the results. This can only be Allocator.Temp, Allocator.TempJob or Allocator.Persistent.
Returns
Type | Description |
|---|---|
| NativeArray<PhysicsBody> | The created bodies. This NativeArray must be disposed of after use otherwise leaks will occur. The exception to this is if the array is empty. |
Remarks
See PhysicsBody.SetOwner.