|
A* Pathfinding Project
4.2.8
The A* Pathfinding Project for Unity 3D
|
Modifier which smooths the path. More...
Modifier which smooths the path.
This modifier can smooth a path by either moving the points closer together (Simple) or using Bezier curves (Bezier).
Attach this component to the same GameObject as a Seeker component.
This component will hook in to the Seeker's path post-processing system and will post process any paths it searches for. Take a look at the Modifier Priorities settings on the Seeker component to determine where in the process this modifier should process the path.
Several smoothing types are available, here follows a list of them and a short description of what they do, and how they work. But the best way is really to experiment with them yourself.



Public Types | |
| enum | SmoothType { Simple, Bezier, OffsetSimple, CurvedNonuniform } |
Public Member Functions | |
| override void | Apply (Path p) |
| Called for each path that the Seeker calculates after the calculation has finished. More... | |
| List< Vector3 > | CurvedNonuniform (List< Vector3 > path) |
| List< Vector3 > | SmoothBezier (List< Vector3 > path) |
| List< Vector3 > | SmoothOffsetSimple (List< Vector3 > path) |
| List< Vector3 > | SmoothSimple (List< Vector3 > path) |
Public Member Functions inherited from MonoModifier | |
| virtual void | PreProcess (Path path) |
Static Public Member Functions | |
| static Vector3 | GetPointOnCubic (Vector3 a, Vector3 b, Vector3 tan1, Vector3 tan2, float t) |
Public Attributes | |
| float | bezierTangentLength = 0.4F |
| Length factor of the bezier curves' tangents'. More... | |
| float | factor = 0.1F |
| Roundness factor used for CurvedNonuniform. More... | |
| int | iterations = 2 |
| Number of times to apply smoothing. More... | |
| float | maxSegmentLength = 2F |
| The length of the segments in the smoothed path when using uniformLength. More... | |
| float | offset = 0.2F |
| Offset to apply in each smoothing iteration when using Offset Simple. More... | |
| SmoothType | smoothType = SmoothType.Simple |
| Type of smoothing to use. More... | |
| float | strength = 0.5F |
| Determines how much smoothing to apply in each smooth iteration. More... | |
| int | subdivisions = 2 |
| Number of times to subdivide when not using a uniform length. More... | |
| bool | uniformLength = true |
| Toggle to divide all lines in equal length segments. More... | |
Public Attributes inherited from MonoModifier | |
| Seeker | seeker |
Properties | |
| override int | Order [get] |
Properties inherited from MonoModifier | |
| abstract int | Order [get] |
| Modifiers will be executed from lower order to higher order. More... | |
Properties inherited from IPathModifier | |
| int | Order [get] |
Additional Inherited Members | |
Protected Member Functions inherited from MonoModifier | |
| virtual void | OnDisable () |
| virtual void | OnEnable () |
| Alerts the Seeker that this modifier exists. More... | |
Protected Member Functions inherited from VersionedMonoBehaviour | |
| virtual void | Awake () |
| virtual int | OnUpgradeSerializedData (int version, bool unityThread) |
| Handle serialization backwards compatibility. More... | |
| virtual void | Reset () |
| Handle serialization backwards compatibility. More... | |
|
strong |
|
virtual |
Called for each path that the Seeker calculates after the calculation has finished.
Implements MonoModifier.
| List<Vector3> CurvedNonuniform | ( | List< Vector3 > | path | ) |
|
static |
| List<Vector3> SmoothBezier | ( | List< Vector3 > | path | ) |
| List<Vector3> SmoothOffsetSimple | ( | List< Vector3 > | path | ) |
| List<Vector3> SmoothSimple | ( | List< Vector3 > | path | ) |
| float bezierTangentLength = 0.4F |
Length factor of the bezier curves' tangents'.
| float factor = 0.1F |
Roundness factor used for CurvedNonuniform.
| int iterations = 2 |
Number of times to apply smoothing.
| float maxSegmentLength = 2F |
The length of the segments in the smoothed path when using uniformLength.
A high value yields rough paths and low value yields very smooth paths, but is slower
| float offset = 0.2F |
Offset to apply in each smoothing iteration when using Offset Simple.
| SmoothType smoothType = SmoothType.Simple |
Type of smoothing to use.
| float strength = 0.5F |
Determines how much smoothing to apply in each smooth iteration.
0.5 usually produces the nicest looking curves.
| int subdivisions = 2 |
Number of times to subdivide when not using a uniform length.
| bool uniformLength = true |
Toggle to divide all lines in equal length segments.
|
get |