SetShapeAdjacentVertices(int, bool, bool, Vector2, Vector2)
Sets the adjacent vertices of a shape.
Read time 2 minutesLast updated 10 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.Physics2DModule
public void SetShapeAdjacentVertices(int shapeIndex, bool useAdjacentStart, bool useAdjacentEnd, Vector2 adjacentStart, Vector2 adjacentEnd)
Parameters
The index of the shape to be modified that is stored the PhysicsShapeGroup2D.
Sets the _useAdjacentStart property of the selected shape.
Sets the _useAdjacentEnd property of the selected shape.
Sets the _adjacentStart property of the selected shape.
Sets the _adjacentEnd property of the selected shape.
Remarks
NOTE: Calling this on a PhysicsShape2D that does not have a shapeType of PhysicsShapeType2D.Edges will result in an exception being thrown.
Examples
using System;using System.Collections.Generic;using UnityEngine;using UnityEngine.Assertions;public class Example : MonoBehaviour{ void Start() { // 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, useAdjacentStart: true, useAdjacentEnd: true, adjacentStart: new Vector2(-5f, -1f), adjacentEnd: new Vector2(6f, 2f) ); // 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); Assert.IsTrue(physicsShape.useAdjacentStart); Assert.IsTrue(physicsShape.useAdjacentEnd); Assert.AreEqual(new Vector2(-5f, -1f), physicsShape.adjacentStart); Assert.AreEqual(new Vector2(6f, 2f), physicsShape.adjacentEnd); // Set the adjacent vertices. shapeGroup.SetShapeAdjacentVertices( shapeIndex, useAdjacentStart: true, useAdjacentEnd: true, adjacentStart: new Vector2(-10f, -5f), adjacentEnd: new Vector2(12f, 3f)); // Fetch the updated shape. physicsShape = shapeGroup.GetShape(shapeIndex); // Validate what we updated. Assert.IsTrue(physicsShape.useAdjacentStart); Assert.IsTrue(physicsShape.useAdjacentEnd); Assert.AreEqual(new Vector2(-10f, -5f), physicsShape.adjacentStart); Assert.AreEqual(new Vector2(12f, 3f), physicsShape.adjacentEnd); }}