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

PhysicsShapeGroup2D.AddEdges

Declaration

public int AddEdges(List<Vector2> vertices, float edgeRadius = 0f);

Параметры

Параметр Описание
вершины Список вершин, которые представляют непрерывное множество рёбер с каждой вершиной, соединяющейся со следующей вершиной, чтобы образовать каждое ребро.
edgeRadius Радиус, простирающийся вокруг каждого края. Это идентично EdgeCollider2D.edgeRadius.

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

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

Описание

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

Форма ребра состоит из нескольких рёбер (отрезков линии), определенных всеми указанными vertices и edgeRadius, который простирается вокруг всех edge(s).

NOTE: Ребра не образуют закрытую форму, поскольку они не имеют внутреннего пространства, даже если первая и последняя вершины перекрываются, поэтому логическое внутреннее пространство не обнаруживается физическими запросами и т.д.

using System;
using System.Collections.Generic;
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 list of Edges. var shapeIndex = shapeGroup.AddEdges ( vertices: new List<Vector2> { new Vector2(-4f, 0f), new Vector2(-2f, -0.5f), new Vector2(0f, 0f), new Vector2(2f, -0.5f), new Vector2(4f, 0f), }, edgeRadius: 0.5f );

// Fetch the actual shape created. var physicsShape = shapeGroup.GetShape(shapeIndex);

// Validate what we created. Assert.AreEqual(PhysicsShapeType2D.Edges, physicsShape.shapeType); Assert.AreApproximatelyEqual(0.5f, physicsShape.radius); Assert.AreEqual(5, physicsShape.vertexCount); }

// Get a physics shape from a Collider. void GetShapeFromCollider() { // Fetch the collider. var collider = GetComponent<EdgeCollider2D>();

// 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.SetPoints( new List<Vector2>() { new Vector2(-4f, 0f), new Vector2(-2f, -0.5f), new Vector2(0f, 0f), new Vector2(2f, -0.5f), new Vector2(4f, 0f), }); collider.edgeRadius = 0.5f;

// 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.Edges, physicsShape.shapeType); Assert.AreApproximatelyEqual(0.5f, physicsShape.radius); Assert.AreEqual(5, physicsShape.vertexCount); } }

Declaration

public int AddEdges(List<Vector2> vertices, bool useAdjacentStart, bool useAdjacentEnd, Vector2 adjacentStart, Vector2 adjacentEnd, float edgeRadius = 0f);

Параметры

Параметр Описание
вершины Список вершин, которые представляют непрерывное множество рёбер с каждой вершиной, соединяющейся со следующей вершиной, чтобы образовать каждое ребро.
edgeRadius Радиус, простирающийся вокруг каждого края. Это идентично EdgeCollider2D.edgeRadius.
useAdjacentStart Если значение равно истине, используется аргумент adjacentStart. Если значение равно лжи, аргумент adjacentStart не используется.
useAdjacentEnd Если значение равно истине, используется аргумент adjacentEnd. Если значение равно лжи, аргумент adjacentEnd не используется.
adjacentStart Определяет положение виртуальной точки, примыкающей к начальной вершине краевой формы.
adjacentEnd Определяет положение виртуальной точки, примыкающей к конечной вершине краевой формы.

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

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

Описание

Добавление рёбра (PhysicsShapeType2D.Edges) в группу фигур, поддерживающую смежные вершины начала и конца.

Форма рёбер состоит из нескольких рёбер (отрезков линии), определенных всеми указанными vertices и edgeRadius, который простирается вокруг всех edge(s).

NOTE: Рёбра не образуют закрытую форму, так как они не имеют внутреннего пространства, даже если первая и последняя вершины перекрываются, поэтому логическое внутреннее пространство не обнаруживается физическими запросами и т.д.