AddBox(Vector2, Vector2, float, float)
Adds a box shape ( PhysicsShapeType2D.Polygon ) to the shape group.
Read time 2 minutesLast updated 7 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.Physics2DModule
public int AddBox(Vector2 center, Vector2 size, float angle = 0, float edgeRadius = 0)
Parameters
The angle in degrees the box should be rotated around the .
centerThe radius extending around the edges of the box. This is identical to _edgeRadius.
Returns
Type | Description |
|---|---|
| int | Returns the shape index the shape was added to in the PhysicsShapeGroup2D. This index is used as the main reference when retrieving a shape. |
Remarks
A box shape is a form of convex polygon with four vertices and an that extends around the four edges. The ability to add a box shape is a convenience only and does not represent an actual primitive shape.
edgeRadiusNOTE: A box forms a closed shape and does have an interior therefore its interior is detectable by physics queries etc.
Examples
using UnityEngine;using UnityEngine.Assertions;public class Example : MonoBehaviour{ void Start() { CreateShape(); GetShapeFromCollider(); } // Create a custom shape. void CreateShape() { // Create a shape group. var shapeGroup = new PhysicsShapeGroup2D(); // Add a Box (polygon with four vertices). // NOTE: Both the angle and edgeRadius arguments are optional. var shapeIndex = shapeGroup.AddBox ( center: new Vector2(3f, 2f), size: new Vector2(1f, 1f), angle: 0f, edgeRadius: 0f ); // Fetch the actual shape created. var physicsShape = shapeGroup.GetShape(shapeIndex); // Validate what we created. Assert.AreEqual(PhysicsShapeType2D.Polygon, physicsShape.shapeType); Assert.AreEqual(4, physicsShape.vertexCount); Assert.AreApproximatelyEqual(0f, physicsShape.radius); } // Get a physics shape from a Collider. void GetShapeFromCollider() { // Fetch the collider. var collider = GetComponent<BoxCollider2D>(); // If the collider is not active and enabled then we'll get no shapes. // Let's just quit if not. if (!collider.isActiveAndEnabled) return; // Configure the collider. collider.offset = new Vector2(3f, 2f); collider.size = new Vector2(1f, 1f); // Create a shape group. var shapeGroup = new PhysicsShapeGroup2D(); // Get the collider shapes. collider.GetShapes(shapeGroup); // Fetch the actual shape. var physicsShape = shapeGroup.GetShape(0); // Validate what we retrieved. Assert.AreEqual(PhysicsShapeType2D.Polygon, physicsShape.shapeType); Assert.AreEqual(4, physicsShape.vertexCount); }}