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

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