SetShapeVertex(int, int, Vector2)
Sets a single vertex of a shape.
Read time 2 minutesLast updated 4 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.Physics2DModule
public void SetShapeVertex(int shapeIndex, int vertexIndex, Vector2 vertex)
Parameters
The index of the shape stored in the PhysicsShapeGroup2D. The shape index is zero-based with the shape group having a quantity of shapes specified by shapeCount.
The index of the shape vertex stored in the PhysicsShapeGroup2D. The vertex index is zero-based with the shape having a quantity of vertex specified by PhysicsShape2D.vertexCount.
The value to set the shape vertex to.
Remarks
NOTE: When accessing multiple vertices, it is more efficient to do one of the following:
- Get all the shape vertices using GetShapeVertices
- Get all the shape group vertices using GetShapeData
- Create the PhysicsShapeGroup2D with explicit shapes and vertices lists using the shape group Constructor
Additional Resources: GetShapeVertex.
Examples
using UnityEngine;using UnityEngine.Assertions;public class Example : MonoBehaviour{ void Start() { // Create a shape group. var shapeGroup = new PhysicsShapeGroup2D(); // Add a Capsule to the shape group. var shapeIndex = shapeGroup.AddCapsule ( vertex0: Vector2.down, vertex1: Vector2.up, radius: 0.5f ); // Fetch the shape vertices from the shape group. var vertex0 = shapeGroup.GetShapeVertex(shapeIndex, vertexIndex: 0); var vertex1 = shapeGroup.GetShapeVertex(shapeIndex, vertexIndex: 1); // Validate the Capsule vertices. Assert.AreEqual(Vector2.down, vertex0); Assert.AreEqual(Vector2.up, vertex1); // Set the shape vertices in the shape group. shapeGroup.SetShapeVertex(shapeIndex, vertexIndex: 0, vertex: Vector2.left); shapeGroup.SetShapeVertex(shapeIndex, vertexIndex: 1, vertex: Vector2.right); // Fetch the shape vertices from the shape group. vertex0 = shapeGroup.GetShapeVertex(shapeIndex, vertexIndex: 0); vertex1 = shapeGroup.GetShapeVertex(shapeIndex, vertexIndex: 1); // Validate the Capsule vertices. Assert.AreEqual(Vector2.left, vertex0); Assert.AreEqual(Vector2.right, vertex1); }}