CollisionPolygon2D

继承: Node2D < CanvasItem < Node < Object

A node that provides a polygon shape to a CollisionObject2D parent.

描述

A node that provides a polygon shape to a CollisionObject2D parent and allows to edit it. The polygon can be concave or convex. This can give a detection shape to an Area2D, turn PhysicsBody2D into a solid object, or give a hollow shape to a StaticBody2D.

Warning: A non-uniformly scaled CollisionShape2D will likely not behave as expected. Make sure to keep its scale the same on all axes and adjust its shape resource instead.

属性


枚举

enum BuildMode:

BuildMode BUILD_SOLIDS = 0

Collisions will include the polygon and its contained area. In this mode the node has the same effect as several ConvexPolygonShape2D nodes, one for each convex shape in the convex decomposition of the polygon (but without the overhead of multiple nodes).

BuildMode BUILD_SEGMENTS = 1

Collisions will only include the polygon edges. In this mode the node has the same effect as a single ConcavePolygonShape2D made of segments, with the restriction that each segment (after the first one) starts where the previous one ends, and the last one ends where the first one starts (forming a closed but hollow polygon).


属性说明

BuildMode build_mode = 0

Collision build mode. Use one of the BuildMode constants.


bool disabled = false

  • void set_disabled ( value: bool )
  • bool is_disabled ( )

If true, no collisions will be detected.


bool one_way_collision = false

  • void set_one_way_collision ( value: bool )
  • bool is_one_way_collision_enabled ( )

If true, only edges that face up, relative to CollisionPolygon2D's rotation, will collide with other objects.

Note: This property has no effect if this CollisionPolygon2D is a child of an Area2D node.


float one_way_collision_margin = 1.0

  • void set_one_way_collision_margin ( value: float )
  • float get_one_way_collision_margin ( )

The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the polygon at a high velocity.


PackedVector2Array polygon = PackedVector2Array()

The polygon's list of vertices. Each point will be connected to the next, and the final point will be connected to the first.

Note: The returned vertices are in the local coordinate space of the given CollisionPolygon2D.

Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.

1

本方法通常需要用户覆盖才能生效。

2

本方法无副作用,不会修改该实例的任何成员变量。

3

本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。

4

本方法用于构造某个类型。

5

调用本方法无需实例,可直接使用类名进行调用。

6

本方法描述的是使用本类型作为左操作数的有效运算符。

7

这个值是由下列位标志构成位掩码的整数。

8

无返回值。