Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


AddCircle(Vector2, float)

Adds a circle shape ( PhysicsShapeType2D.Circle ) to the shape group.
Read time 2 minutesLast updated 4 days ago

Definition

  • Type: Method
  • Namespace: UnityEngine
  • Assembly: UnityEngine.Physics2DModule
public int AddCircle(Vector2 center, float radius)

Parameters

center

The center point of the circle shape. This is analogous to _offset.

radius

The radius of the circle defining a radius around the
center
. This is identical to _radius.

Returns

Type

Description

intReturns 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 circle shape is comprised of a single vertex (center ) and a
radius
that extends around that vertex. This is the most memory efficient and fastest primitive to use in all use-cases.
NOTE: A circle 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 Circle. var shapeIndex = shapeGroup.AddCircle ( center: new Vector2(-2f, 3f), radius: 1f ); // Fetch the actual shape created. var physicsShape = shapeGroup.GetShape(shapeIndex); // Validate what we created. Assert.AreEqual(PhysicsShapeType2D.Circle, physicsShape.shapeType); Assert.AreApproximatelyEqual(1f, physicsShape.radius); Assert.AreEqual(1, physicsShape.vertexCount); } // Get a physics shape from a Collider. void GetShapeFromCollider() { // Fetch the collider. var collider = GetComponent<CircleCollider2D>(); // 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.radius = 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.Circle, physicsShape.shapeType); Assert.AreApproximatelyEqual(1f, physicsShape.radius); Assert.AreEqual(1, physicsShape.vertexCount); }}