PhysicsShapeGroup2D.AddCapsule
Declaration
public int AddCapsule(Vector2 vertex0, Vector2 vertex1, float radius);Параметры
| Параметр | Описание |
|---|---|
| vertex0 | Положение одного конца формы капсулы. Эта точка представляет собой центральную точку логической окружности на конце формы капсулы. |
| vertex1 | Положение противоположного конца формы капсулы. Эта точка представляет собой центральную точку логической окружности на противоположном конце формы капсулы. |
| радиус | Радиус капсулы, определяющий радиус вокруг vertex0 и vertex1 и зону между ними. |
Возвращаемое значение
инт Возвращает индекс формы, в которую фигура была добавлена в PhysicsShapeGroup2D. Этот индекс используется в качестве главной ссылки при получении фигуры.
Описание
Добавляет форму капсулы (PhysicsShapeType2D.Capsule) в группу форм.
Форма капсулы состоит из одной формы края, определяемой двумя вершинами (vertex0 и vertex1) и 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 Capsule. var shapeIndex = shapeGroup.AddCapsule ( vertex0: Vector2.down, vertex1: Vector2.up, radius: 0.5f );
// Fetch the actual shape created. var physicsShape = shapeGroup.GetShape(shapeIndex);
// Validate what we created. Assert.AreEqual(PhysicsShapeType2D.Capsule, physicsShape.shapeType); Assert.AreApproximatelyEqual(0.5f, physicsShape.radius); Assert.AreEqual(2, physicsShape.vertexCount); }
// Get a physics shape from a Collider. void GetShapeFromCollider() { // Fetch the collider. var collider = GetComponent<CapsuleCollider2D>();
// 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.size = new Vector2(1f, 2f);
// 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.Capsule, physicsShape.shapeType); Assert.AreApproximatelyEqual(0.5f, physicsShape.radius); Assert.AreEqual(2, physicsShape.vertexCount); } }