Unity 6.3
0 онлайн 1 гость 3 в системе
Вход

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); } }