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

PhysicsShapeGroup2D.AddBox

Declaration

public int AddBox(Vector2 center, Vector2 size, float angle = 0f, float edgeRadius = 0f);

Параметры

Параметр Описание
центр Центральная точка формы коробки. Это аналогично Collider2D.offset.
размер Размер коробки. Это идентично BoxCollider2D.size.
угол Угол в градусах, под которым коробка должна быть повернута вокруг center.
edgeRadius Радиус, простирающийся вокруг краев коробки. Это идентично BoxCollider2D.edgeRadius.

Возвращаемое значение

инт Возвращает индекс формы, в которую фигура была добавлена в PhysicsShapeGroup2D. Этот индекс используется в качестве главной ссылки при получении фигуры.

Описание

Добавляет форму коробки (PhysicsShapeType2D.Polygon) в группу форм.

Форма коробки представляет собой форму выпуклого многоугольника с четырьмя вершинами и edgeRadius, который простирается вокруг четырех рёбер. Возможность добавления формы коробки является только удобством и не представляет собой фактическую примитивную форму.

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