PhysicsShapeGroup2D.AddCircle
Declaration
public int AddCircle(Vector2 center, float radius);Параметры
| Параметр | Описание |
|---|---|
| центр | Центральная точка формы круга. Это аналогично Collider2D.offset. |
| радиус | Радиус окружности, определяющий радиус вокруг center. Это идентично CircleCollider2D.radius. |
Возвращаемое значение
инт Возвращает индекс формы, в которую фигура была добавлена в PhysicsShapeGroup2D. Этот индекс используется в качестве главной ссылки при получении фигуры.
Описание
Добавляет фигуру круга (PhysicsShapeType2D.Circle) в группу фигур.
Форма круга состоит из одной вершины (center ) и radius, которая простирается вокруг этой вершины. Это наиболее эффективный и быстрый примитив для использования во всех случаях использования.
NOTE: Окружность образует закрытую форму и имеет внутреннюю часть, поэтому ее внутренняя часть обнаруживается физическими запросами и т.д.
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); } }